色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

解讀IE和firefox下JScript和HREF的執(zhí)行順序

很久都沒(méi)有寫(xiě)關(guān)于代碼方面的文章了。主要原因還是因?yàn)樽罱墓ぷ鞫技性谛枨蠓治龇矫妫瑳](méi)有了現(xiàn)實(shí)中的感觸,就沒(méi)有了寫(xiě)作的動(dòng)機(jī)。討論一個(gè)關(guān)于JScript執(zhí)行順序的問(wèn)題。示例代碼如下:
a.htm
<A onmouseup="func('onmouseup')" href="b.htm">Click Me!</A> <A onclick="func2('onclick')" href="d.htm">Click Me!</A> <SPAN id=msg></SPAN>
<SCRIPT>
function func(str)
{
  msg(str);
  window.location.href="c.htm";
}
function msg(str)
{
  document.getElementById("msg").innerText=str;  //A
  //alert(str);                                  //B
}
function func2(str)
{
  msg(str);
  window.location.href="e.htm";
}
</SCRIPT>
在msg(str)有個(gè)注釋掉的行,試驗(yàn)的時(shí)候分別執(zhí)行A和B。

  A B
 onmouseup onclick onmouseuponclick 
 IE b.htm d.htm c.htmd.htm 
 FireFox c.htm->b.htm e.htm->d.htm c.htm->b.htme.htm->d.htm 

上表主要列出了兩個(gè)瀏覽器中的執(zhí)行順序,紅色代表頁(yè)面腳本跳轉(zhuǎn)的頁(yè)面,藍(lán)色是Anchor標(biāo)簽的href屬性。從上面可以看出,對(duì)于FireFox,始終先執(zhí)行頁(yè)面腳本,然后瀏覽器再跳轉(zhuǎn)。而IE里面執(zhí)行的過(guò)程卻有差別:
1、使用后退按鈕直接回到a.htm,即頁(yè)面只執(zhí)行了一個(gè)跳轉(zhuǎn);
2、在使用alert中斷的情況下,onmouseup執(zhí)行了頁(yè)面腳本中的跳轉(zhuǎn)。

從上可以看出,
1、對(duì)于FireFox而言,頁(yè)面腳本執(zhí)行順序始終優(yōu)先于瀏覽器內(nèi)嵌腳本執(zhí)行順序,這個(gè)已經(jīng)很明顯了。
2、IE中,HREF的執(zhí)行順序?yàn)閛nmouseup->href->onclick。真的嗎?

為了更加明確2中的執(zhí)行順序,我們繼續(xù)分析onclick和href的執(zhí)行順序關(guān)系。在上述例子中,onclick是采用調(diào)入的方式執(zhí)行的。如果a. 我們使用以下的測(cè)試代碼:
<a href="d.htm" onclick="return false;">Click Me!</a>
發(fā)現(xiàn)HREF不能被執(zhí)行。
b. 如果我們使用以下測(cè)試代碼:
<a href="d.htm" onclick="window.location.href='e.htm';return false;">Click Me!</a>
發(fā)現(xiàn)依舊執(zhí)行HREF的d.htm,而不是onclick中的e.htm。
c. 如果我們使用以下測(cè)試代碼:
<a href="d.htm" onclick="msg('onclick');return false;">Click Me!</a>( function msg()的代碼如上)
發(fā)現(xiàn)執(zhí)行了function msg(),而HREF不被觸發(fā)。

暈了。IE的確是個(gè)詭異的東西。誰(shuí)能幫忙解釋一下b例中的現(xiàn)象?

JavaScript技術(shù)解讀IE和firefox下JScript和HREF的執(zhí)行順序,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 乌拉特前旗| 丽水市| 若羌县| 庆城县| 广平县| 奉节县| 柳江县| 芜湖县| 双柏县| 嘉黎县| 章丘市| 九龙坡区| 北碚区| 天柱县| 奉贤区| 湘乡市| 榕江县| 镇康县| 新余市| 满洲里市| 伊宁市| 栾城县| 淳安县| 满洲里市| 肇庆市| 正安县| 富宁县| 客服| 临西县| 藁城市| 增城市| 饶平县| 秭归县| 孝昌县| 宁夏| 建德市| 咸阳市| 台州市| 湘潭县| 乐都县| 右玉县|