長い間コーディングに関する記事を書いていませんでした。その主な理由は、最近の仕事が需要分析に重点を置いているためであり、現実の感情がなければ、書く動機がありません。 JScript の実行順序に関する問題について話し合います。サンプル コードは次のとおりです。 ->d.htm ->d.htm
a.htm
Click Me! A>A onclick="func2('onclick')" href="d.htm">クリックしてください
<SCRIPT> ;<br>function func(str)<br>{<br> msg(str);<br> window.location.href="c.htm";<br>}<br>function msg(str)<br>{<br> document.getElementById("msg").innerText=str; //A<br> //alert(str);<br> window.location.href="e.htm" ;<br>}<br></SCRIPT>
msg(str) 行にコメントがあります。テスト中にそれぞれ A と B を実行します。
B
マウスアップ時
クリック
マウスアップ時
クリック
IE
b.htm
d.htm
c.htm
d.htm
ファイアフォックス
c.htm
->b.htm
A
B
onmouseup
onclick
onmouseup
onclick
IE
b.htm
d.htm
c.htm
d.htm
FireFox
c.htm->b.htm
e.htm->d.htm
c.htm->b.htm
e.htm->d.htm
e.htm
c.htm
->b.htme.htm
1. 戻るボタンを使用して a.htm に直接戻ります。つまり、ページは 1 つのジャンプのみを実行します。
2. アラートを使用して中断する場合、onmouseup が実行されます。ページスクリプト内でジャンプします。
上記からわかるように、
1. FireFox では、ページ スクリプトの実行順序がブラウザーに埋め込まれたスクリプトの実行順序よりも常に優先されます。 2. IE では、HREF の実行順序は onmouseup->href->onclick です。本当に?
2 の実行順序をより明確にするために、onclick と href の実行順序の関係を引き続き分析します。上記の例では、onclick を呼び出すことで実行されます。 a. 次のテスト コードを使用します:
Click Me!
Discover HREF を実行できません。
b. 次のテスト コードを使用する場合:
Click Me!
onclick の e.htm ではなく、HREF の d.htm がまだ 実行されていることがわかりました。