IEとfirefoxの下でJScriptとHREFの実行順序を解読します。


コードに関する文章は久しぶりです。主な原因はやはり最近の仕事は需要分析に集中していますので、現実の感覚がなくなり、書く動機がなくなりました。JScriptの実行順序について議論します。例のコードは以下の通りです。a.httmfunction func(str)  msg(str)  window.locations.href="c.httm"function msg(str){  Dcument.getElementById.innerText=str;  //A  //alert(str)                                  //B}function func 2(str){  msg(str)  window.location.href=「e.httm」msg(str)に注釈が付けられた行があります。テストの時はそれぞAとBを実行します。  A B onmouseup onclick onmouse uplonclick  IE b.httm d.httm c.httmd.httm  FireFox c.httm->b.httm e.httm->d.httm c.httm->b.httme.httm->d.httm 上の表は主に2つのブラザーの実行順を示しています。赤い色はペ-ジプロのジャ-プを表にしています。青はアンジェラベルのhref属性です。上か见ると、FireFoxに対しては、常に先にペ-ジを実行して、ブラウザウジャジャプロです。IEの中で実行するプロセスは违いがあります。1、バックボンボンを使って直接a.httmに戻ります。つまた、ページは一つのマッチです。2、alertを使って中断した場合、onmouseupはペ-ジプロのジャ-プを実行しました。上から见ると、1、FireFoxにって、ペ-ジクプロの実行顺はブラウザの埋込み込み込み込みプログラムの実行顺です。2、IEでは、HREFの実行順はonmouseup->href->onclickである。本当ですか2の实行顺序をより明确にするために、Oclickとhrefの実行顺関系を分析します。上记の例では、onclickは入れ换え方式で実行される。a.以下のテストコードを使用すると、Click Me!HREFは実行されないことがわかった。b.下記のテストコードを使用すると、Click Me!発見は依然としてHREFのd.httmを実行しており、onclickのe.httmではない。c.下記のテストコードを使うと、Click Me!( function msg()のコードは上述の通りであり、HREFはトリガされない。
目まいがする。IEは確かに怪しいものです。誰がb例の現象を説明してくれますか?