0

<body>レンダリング中に非同期で呼び出される JavaScript コードがあります。また、このコードを利用する JavaScript ファイルもあります。このコードとファイルをロードするスクリプトは、外部システムで記述されています。このコードがいつページに挿入されるかは予測できません。JS ファイルのコードを変更できません。

現在、JS ファイルには、画像を作成するための document.write メソッドが含まれています。ただし、書き込みアクションがいつ実行されるかを予測することは不可能であるため、この方法はお勧めしません。たとえば、ボディのレンダリングが終了して DOM がロードされた後に実行すると、ページ コンテンツは完全に書き換えられます。上記の最悪の事態が起こらないようにしたい。これを行う方法 ?

4

1 に答える 1

1

100%確信できるとは思わないでください。document.body.innerHTMLただし、代わりに使用できますdocument.write

document.write('<img src="1.gif">');

DOM をリセットする可能性が最も高く、特にその後のどこかに配置されます<body>

document.body.innerHTML+='<img src="1.gif">';

関数に配置することさえできませんwindow.onload


さて、あなたはJSファイルのコードを変更することはできないと言いますが、変更することはできますdocument.write:

document.write = function() {
    document.body.innerHTML+=arguments[0];
}

JSがdocument.writeこのように呼び出す場合

document.write('<img src="1.gif">');

次に、本体に をdocument.body.innerHTML+=arguments[0];追加して、実際に呼び出されるようになりました。<img>

ヴィオラ、あなたは問題を克服しましたdocument.write...

于 2013-10-16T11:01:38.017 に答える