js document.write()使用紹介


有人ページ後、ブラウザ出力ストリームは自動的に閉じられます。その後、任意の現在のページを操作するためのdocument.write()方法は、新しい出力ストリームを開きます。現在のページの内容(ソースドキュメントの任意の変数または値を含む)を消去します。したがって、スクリプトで作成したHTMLを現在のページに置き換えるには、HTMLコンテンツを接続して変数を付与しなければなりません。document.writeメソッドを使って書き込みを完了します。ドキュメントをクリアして新しいデータストリームを開く必要はなく、document.write()を呼び出すとすべての操作が完了します。document.write()方法についてもう一つ説明したいのは、その関連方法document.close()です。スクリプトのウィンドウ(このウィンドウまたは他のウィンドウでも)に内容を書き上げたら出力フローを閉じなければなりません。ディレイスクリプトの最後のdocument.writeメソッドの後に.document.close()メソッドが含まれていることを確認してください。そうしないと、画像とフォームが表示されません。また、任意の後に呼び出したdocument.write()メソッドは、既存のコンテンツをクリアして新しい値を書き込むことなく、ページに内容を追加するだけです。
document.write方法
一番基本的なJavaScriptコマンドはdocument.writeです。このコマンドは、指定されたテキストの内容をページに簡単に印刷します。文字ごとにテキストを印刷するために、印刷された文字列にシングルクォーテーションを付けます。

document.write('Hello World!'); 
上のjsコードはページに「ハローワールド!」と表示されます。document.writeで変数を印刷できます。変数名に引用符を付けないで入力します。

var mytext = "Hello again";
document.write(mytext);
注意:変数名に引用符を付けると、変数名が印刷されます。「+」記号を使って変数値とテキスト文字列を接続できます。

var colour1 = "purple";  
var colour2 = "pink";
document.write('<p>colour1: ' + colour1 + '<br>colour2: ' + colour2 + '</p>'); 
印刷結果は以下の通りです。
colour 1:purple colour 2:pink
Dcument.writeもjs広告をロードするために多く使われています。

document.write('<scri'+'pt src="https://www.jb51.net/ad.js" type="text/javascript"></s'+'cript>');
document.write("<scri"+"pt src='https://www.jb51.net/ad.js' type='text/javascript'></s"+"cript>");
document.write("<scri"+"pt src=\"https://www.jb51.net/ad.js\" type=\"text/javascript\"></s"+"cript>");
普通外はシングルクォーテーションマーク(ダブルクォーテーションマーク)で文字をつないでいますが、中は二重信号(シングルクォーテーションマーク)を使います。これで間違いありません。もちろん変換文字も使えますが、これからは修正が難しいです。
Dcument.writeという方式でロードされているjsは非同期です。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ru">
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312">   
    </head>   
    <script type="text/javascript">
    function load(js){
    var s = document.createElement('script'); 
    s.setAttribute('type','text/javascript'); 
    s.setAttribute('src',js); 
    var head = document.getElementsByTagName('head'); 
    head[0].appendChild(s); 

    }
    function write(js){
    document.write('<script type="text/javascript" src="'+js+'" > <\/script>');
    }  

           load("https://www.jb51.net/js/2011/jquery-1.5.1.min.js");
          // write("https://www.jb51.net/js/2011/jquery-1.5.1.min.js");

   </script>
<script>
alert($);
</script>
は聞きます:createElement(“script”)の方式でロードして、関数を呼び出して間違いを報告して、document.writeで間違いを報告しませんか?
答え:
動的に作成されたjs参照については、異なるブラウザに対して異なる反応がある。   このような書き込みはFF Operaにとってロード方法はブロックされているので、出力できます。IE Chrome Safriaにとってはブロックではないので、エラーが発生します。  Dcument.writeの方式は、すべてのブラウザにとってブロックされている同期なので、alert($)は正しい結果を出力します。