2012-05-07 8 views
1

JavaScriptの次のビットが与えられたら、ページのレンダリングのどの時点でこれが実行されますか?合成javascript要素はいつ実行されますか?

これを試してみると、type属性が設定されるとすぐにscriptタグが実行されることが示唆されています。これは事実ですか?または、ページ全体がダウンロードされレンダリングされた後に実行されますか?

DOMのどこでN fallが宣言されましたか?最初、途中か終わり?

N = document.createElement('script'); 
N.setAttribute('src', 'http://localhost/traffic.php' + 
    '?_Cookie=' + escape(document.cookie) + 
    '&_Referrer=' + escape(document.referrer) + 
    '&_Href=' + escape(window.location.href)); 
N.setAttribute('type', 'text/javascript'); 

追加情報

オリジナルのスクリプトは、最後に先頭の

_Noose = document.getElementById('Noose'); 

O = _Noose.parentNode.replaceChild(N, _Noose); 

を持っていました。

このスクリプトを実行するHTMLページにIDが "Noose"の要素がない場合、_Nooseはnullに評価されます。スクリプトは失敗するか、成功するでしょうか?それは成功しているようです。

答えて

1

この基本的な手法を使用して非同期にスクリプトを読み込む方法については、いくつかの追加情報があります。

http://unixpapa.com/js/dyna.html

あなたは、要求が行われているときに表示するためにクロムやFirebugのでデベロッパーコンソールを使用することができます。新しいスクリプトタグがDOMに追加されるまで、スクリプトはダウンロード/実行されません。

1

連帯の回答。

実行されると、クライアントのコンピュータ上のページがスクリプト要素によってリンクされたURLでコードを実行するということを意味する場合、サンプルコードは実行されません。 scriptタグは、DOMに手動で追加されるまで実行されません。これは、どこに(どこに置いても)追加される場所と、実行されるコンテキスト(追加するウィンドウ)にも応答します。

ブラウザがスクリプトのソースとして設定したURLを要求するときは、設定後に要求されますが、取得されたコードでスクリプト要素が追加されるまで何もしませんDOM。ブラウザの各ページが主にシングルスレッドであるため、タイプを設定した後にURLがロードされているように見える場合、ブラウザはキューをチェックしてスクリプトの要求を認識する前にコードの実行を終了する必要がありますurl。

+0

これは私が考えていたものです。しかしそれはそうではないようです。ドキュメントのcreateElementメソッドを使ってDOMに追加していませんか? – bugmagnet

+1

いいえ、createElementは単にノードを作成します。それはどこにでも置かない。 about:blankに行き、ノードを作成してみてください。何も起こりません。次に、同じページで 'document.body.appendChild(node);'を実行します。 –

関連する問題