解读IE和firefox下JScript和HREF的执行顺序

2022-01-14,,,,

解读IE和firefox下JScript和HREF的执行顺序

很久都没有写关于代码方面的文章了。主要原因还是因为最近的工作都集中在需求分析方面,没有了现实中的感触,就没有了写作的动机。讨论一个关于JScript执行顺序的问题。示例代码如下:
a.htm
Click Me!Click Me!

在msg(str)有个注释掉的行,试验的时候分别执行A和B。

   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 

上表主要列出了两个浏览器中的执行顺序,红色代表页面脚本跳转的页面,蓝色是Anchor标签的href属性。从上面可以看出,对于FireFox,始终先执行页面脚本,然后浏览器再跳转。而IE里面执行的过程却有差别:
1、使用后退按钮直接回到a.htm,即页面只执行了一个跳转;
2、在使用alert中断的情况下,onmouseup执行了页面脚本中的跳转。

从上可以看出,
1、对于FireFox而言,页面脚本执行顺序始终优先于浏览器内嵌脚本执行顺序,这个已经很明显了。
2、IE中,HREF的执行顺序为onmouseup->href->onclick。真的吗?

为了更加明确2中的执行顺序,我们继续分析onclick和href的执行顺序关系。在上述例子中,onclick是采用调入的方式执行的。如果a. 我们使用以下的测试代码:
Click Me!
发现HREF不能被执行。
b. 如果我们使用以下测试代码:
Click Me!
发现依旧执行HREF的d.htm,而不是onclick中的e.htm。
c. 如果我们使用以下测试代码:
Click Me!( function msg()的代码如上)
发现执行了function msg(),而HREF不被触发。

晕了。IE的确是个诡异的东西。谁能帮忙解释一下b例中的现象?

您可能感兴趣的文章:

  • 使用jscript实现二进制读写脚本代码
  • JScript中调用ActiveX获取访客网卡MAC地址实现代码
  • 使用 JScript 创建 .exe 或 .dll 文件的方法
  • JScript 脚本实现文件下载 一般用于下载木马
  • JScript中使用ADODB.Stream判断文件编码的代码
  • 在JScript中使用缓存技术的实际代码
  • 解决 JScript 中使用日期类型数据时出现类型错误的问题
  • jscript读写二进制文件的方法

以上就是解读IE和firefox下JScript和HREF的执行顺序的详细内容,更多请关注本站其它相关文章!

《解读IE和firefox下JScript和HREF的执行顺序.doc》

下载本文的Word格式文档,以方便收藏与打印。