Document.writeはページを1回だけ上書きします

user3088260

私はdocument.write()既存のhtmlをAJAXによってロードされたものに置き換えるために使用てきました
通常のロードごとに1回使用すると(通常はAJAXなしを意味します)正常に動作しますが、複数回使用すると、既存のコンテンツを置き換えずに書き込みます

つまり、最初document.write()にpage1で呼び出されると、page1は(意図したとおりに)上書きされますが、次に呼び出されると、新しいコンテンツがpage1に追加されます。どうして?

これが私の問題を再現するためのいくつかのコードです:

グローバルJavaScript(すべてのページ):

function loadXMLDoc(name) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.addEventListener("load", transferComplete, false);
    xmlhttp.open("GET", name, true);
    xmlhttp.send();
    function transferComplete() {
        document.write(xmlhttp.responseText);
        history.replaceState(null, null, name);
    }
}

1ページ目:

<a href="#" onclick="loadXMLDoc('page2.html');">p1</a>

2ページ目:

<a href="#" onclick="loadXMLDoc('page3.html');">p1</a>

3ページ目:

<a href="#" onclick="loadXMLDoc('page1.html');">p1</a>
グッファ

それが予想される動作です。このwriteメソッドは、レンダリング時にページにコンテンツを書き込むために使用されます。

ページが完了した後に使用された場合にのみページが置き換えられます。これは、最初に使用するときに、document.open()書き込み先の新しいストリームを開始するために暗黙的実行されるためです。

それを適切に使用してページを置き換えるには、document.open最初に呼び出し、次にdocument.write1回以上使用してコンテンツを書き込み、次に呼び出しdocument.closeて新しいページが完成したことをブラウザーに通知します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AJAX呼び出しは、$(document).on( 'click')で1回だけ機能します

分類Dev

document.createElement()関数は1回だけ実行されます

分類Dev

document.write()がページを上書きするかどうか、つまり現在のスクリプトが非同期で読み込まれるかどうかを判断するにはどうすればよいですか?

分類Dev

document.write空白ページ

分類Dev

Document.write関数は、ページ全体をテキストに置き換えます

分類Dev

document.writeを使用して、本文の上部に書き込む方法はありますか?

分類Dev

document.writeをdocument.getelementbyidに置き換えます

分類Dev

document.writeのページを更新する方法

分類Dev

document.writeなしでJavaScript変数をHTMLページに表示する方法

分類Dev

このjsスニペットで `document.write`は何をしますか?

分類Dev

$(document).readyは、新しいページに移動するときに起動しません

分類Dev

'open'を使用して読み取りと上書きを1回だけ行うことはできますか?

分類Dev

Undefined Variable In document.write

分類Dev

<script> document.write( '<base href =“' + document.location + '” />'); </ script>

分類Dev

<script> document.write( '<base href = "' + document.location + '" />'); </ script>

分類Dev

javascriptコードは、ページが読み込まれるときに1回だけ機能します

分類Dev

document.domain = document.domainは何をしますか?

分類Dev

複数の document.ready 関数を jsp ページに追加して、固有の API 呼び出しを内部に含めることはできますか?

分類Dev

内部ディレクティブから$ documentを1回だけリッスンする方法

分類Dev

setTimeout後にページをクリアする `document.write`の問題

分類Dev

document.querySelectorはnullを返します

分類Dev

document.getElementByIdは空を返します

分類Dev

document.getElementById()はnullを返します

分類Dev

MutationObserver APIを使用してdocument.bodyでdocument.writeを監視できないのはなぜですか?

分類Dev

JS-document.querySelector()|| document.querySelector()はタイプエラーを出します

分類Dev

document.writeを使用して作成されたページでアンカーがクリックされた場合、Firefoxは他のブラウザとは異なる動作をします。回避策はありますか?

分類Dev

TYPO3は、ページ上に複数の同じプラグインがある場合に1回だけアクションを実行します

分類Dev

javascriptはコンソールでは機能しますが、$(document).ready(function()を追加した後でもページでは機能しません

分類Dev

document.write()で書き込むときに<script>タグを分割する理由

Related 関連記事

  1. 1

    AJAX呼び出しは、$(document).on( 'click')で1回だけ機能します

  2. 2

    document.createElement()関数は1回だけ実行されます

  3. 3

    document.write()がページを上書きするかどうか、つまり現在のスクリプトが非同期で読み込まれるかどうかを判断するにはどうすればよいですか?

  4. 4

    document.write空白ページ

  5. 5

    Document.write関数は、ページ全体をテキストに置き換えます

  6. 6

    document.writeを使用して、本文の上部に書き込む方法はありますか?

  7. 7

    document.writeをdocument.getelementbyidに置き換えます

  8. 8

    document.writeのページを更新する方法

  9. 9

    document.writeなしでJavaScript変数をHTMLページに表示する方法

  10. 10

    このjsスニペットで `document.write`は何をしますか?

  11. 11

    $(document).readyは、新しいページに移動するときに起動しません

  12. 12

    'open'を使用して読み取りと上書きを1回だけ行うことはできますか?

  13. 13

    Undefined Variable In document.write

  14. 14

    <script> document.write( '<base href =“' + document.location + '” />'); </ script>

  15. 15

    <script> document.write( '<base href = "' + document.location + '" />'); </ script>

  16. 16

    javascriptコードは、ページが読み込まれるときに1回だけ機能します

  17. 17

    document.domain = document.domainは何をしますか?

  18. 18

    複数の document.ready 関数を jsp ページに追加して、固有の API 呼び出しを内部に含めることはできますか?

  19. 19

    内部ディレクティブから$ documentを1回だけリッスンする方法

  20. 20

    setTimeout後にページをクリアする `document.write`の問題

  21. 21

    document.querySelectorはnullを返します

  22. 22

    document.getElementByIdは空を返します

  23. 23

    document.getElementById()はnullを返します

  24. 24

    MutationObserver APIを使用してdocument.bodyでdocument.writeを監視できないのはなぜですか?

  25. 25

    JS-document.querySelector()|| document.querySelector()はタイプエラーを出します

  26. 26

    document.writeを使用して作成されたページでアンカーがクリックされた場合、Firefoxは他のブラウザとは異なる動作をします。回避策はありますか?

  27. 27

    TYPO3は、ページ上に複数の同じプラグインがある場合に1回だけアクションを実行します

  28. 28

    javascriptはコンソールでは機能しますが、$(document).ready(function()を追加した後でもページでは機能しません

  29. 29

    document.write()で書き込むときに<script>タグを分割する理由

ホットタグ

アーカイブ