IE6 a href onclick 执行顺序
2011-12-09 11:51
288 查看
一、以下是百度的转摘:http://hi.baidu.com/daijun2007/blog/item/750259df953c071e62279868.html
IE6 a href onclick兼容性问题
2010-07-14 16:19
<a href='javascript:void(0);' onclick='_gotoPage(url_go , 2, 10)' >")下一页</a>
IE6下上面的onclick事件不会被响应,换成下面的就OK了,加上return false
<a href='javascript:void(0);' onclick='_gotoPage(url_go , 2, 10) return false;'
>")下一页</a>;
请求的链接是用的 A 标签,A上同时写了href和onclick事件。对于链接 A 标签而言,当用户鼠标单击的时候,A对象被触发时会首先去执行onclick部分,然后是href,如果是ie6的话,执行onclick,发出http请求。瞬时又执行href,这时ie6就会abort前一个请求。
解决方法就是:
直接把onclick事件写在href中:href="javascript:do()"
还有一种解决方案:<a href="javascript:void(0)" onclick="do();return false;">Hello World</a>
这样是忽略了href部分,这对于通过onclick传递this,或者无法避开a对象时都有用。
二、以下是脚本之家的转摘:/article/1261006.html
很久都没有写关于代码方面的文章了。主要原因还是因为最近的工作都集中在需求分析方面,没有了现实中的感触,就没有了写作的动机。讨论一个关于JScript执行顺序的问题。示例代码如下:
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)有个注释掉的行,试验的时候分别执行A和B。
上表主要列出了两个浏览器中的执行顺序,红色代表页面脚本跳转的页面,蓝色是Anchor标签的href属性。从上面可以看出,对于FireFox,始终先执行页面脚本,然后浏览器再跳转。而IE里面执行的过程却有差别:
1、使用后退按钮直接回到a.htm,即页面只执行了一个跳转;
2、在使用alert中断的情况下,onmouseup执行了页面脚本中的跳转。
从上可以看出,
1、对于FireFox而言,页面脚本执行顺序始终优先于浏览器内嵌脚本执行顺序,这个已经很明显了。
2、IE中,HREF的执行顺序为onmouseup->href->onclick。真的吗?
为了更加明确2中的执行顺序,我们继续分析onclick和href的执行顺序关系。在上述例子中,onclick是采用调入的方式执行的。如果a. 我们使用以下的测试代码:
<a href="d.htm" onclick="return false;">Click Me!</a>
发现HREF不能被执行。
b. 如果我们使用以下测试代码:
<a href="d.htm" onclick="window.location.href='e.htm';return false;">Click Me!</a>
发现依旧执行HREF的d.htm,而不是onclick中的e.htm。
c. 如果我们使用以下测试代码:
<a href="d.htm" onclick="msg('onclick');return false;">Click Me!</a>( function msg()的代码如上)
发现执行了function msg(),而HREF不被触发。
晕了。IE的确是个诡异的东西。谁能帮忙解释一下b例中的现象?
IE6 a href onclick兼容性问题
2010-07-14 16:19
<a href='javascript:void(0);' onclick='_gotoPage(url_go , 2, 10)' >")下一页</a>
IE6下上面的onclick事件不会被响应,换成下面的就OK了,加上return false
<a href='javascript:void(0);' onclick='_gotoPage(url_go , 2, 10) return false;'
>")下一页</a>;
请求的链接是用的 A 标签,A上同时写了href和onclick事件。对于链接 A 标签而言,当用户鼠标单击的时候,A对象被触发时会首先去执行onclick部分,然后是href,如果是ie6的话,执行onclick,发出http请求。瞬时又执行href,这时ie6就会abort前一个请求。
解决方法就是:
直接把onclick事件写在href中:href="javascript:do()"
还有一种解决方案:<a href="javascript:void(0)" onclick="do();return false;">Hello World</a>
这样是忽略了href部分,这对于通过onclick传递this,或者无法避开a对象时都有用。
二、以下是脚本之家的转摘:/article/1261006.html
很久都没有写关于代码方面的文章了。主要原因还是因为最近的工作都集中在需求分析方面,没有了现实中的感触,就没有了写作的动机。讨论一个关于JScript执行顺序的问题。示例代码如下:
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)有个注释掉的行,试验的时候分别执行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 |
1、使用后退按钮直接回到a.htm,即页面只执行了一个跳转;
2、在使用alert中断的情况下,onmouseup执行了页面脚本中的跳转。
从上可以看出,
1、对于FireFox而言,页面脚本执行顺序始终优先于浏览器内嵌脚本执行顺序,这个已经很明显了。
2、IE中,HREF的执行顺序为onmouseup->href->onclick。真的吗?
为了更加明确2中的执行顺序,我们继续分析onclick和href的执行顺序关系。在上述例子中,onclick是采用调入的方式执行的。如果a. 我们使用以下的测试代码:
<a href="d.htm" onclick="return false;">Click Me!</a>
发现HREF不能被执行。
b. 如果我们使用以下测试代码:
<a href="d.htm" onclick="window.location.href='e.htm';return false;">Click Me!</a>
发现依旧执行HREF的d.htm,而不是onclick中的e.htm。
c. 如果我们使用以下测试代码:
<a href="d.htm" onclick="msg('onclick');return false;">Click Me!</a>( function msg()的代码如上)
发现执行了function msg(),而HREF不被触发。
晕了。IE的确是个诡异的东西。谁能帮忙解释一下b例中的现象?
相关文章推荐
- IE6 a href onclick 执行顺序 && IE6下a标签发ajax请求的深坑
- a标签的onclick与href的执行顺序
- html超链接a标签的href跳转跟onclick之间执行顺序示例介绍
- 关于a标签的onclick与href的执行顺序
- href javascript target onclick 执行顺序 浏览器兼容问题
- 关于a标签的onclick与href的执行顺序
- html链接(<a>)中href属性和onclick事件执行先后顺序
- html标记<a/>属性href, onclick执行顺序与失效问题解决
- 关于a标签的onclick与href的执行顺序
- 关于a标签的onclick与href的执行顺序
- a的href属性和onclick的执行顺序
- <a>标签href属性和onclick()执行顺序及点击两次才跳转
- js的onclick和jquery的bind事件执行先后顺序
- 解读IE和firefox下JScript和HREF的执行顺序
- onload和onclick及其他事件的默认执行顺序
- IE6 a href onclick兼容性问题
- a标签中href与onclick执行先后问题
- <a>标签href与js(onclick)的触发顺序
- form表单中onclick事件和onsubmit事件的执行顺序
- IE6 a href onclick兼容性问题