本帖最后由 诸葛晓明 于 2011-3-26 22:17 编辑
问题:一个页面 page_a.html 中包含一个 iframe,它的 src 属性指向 page_b.html,
在IE7, 8 & Firefox 中均能正常显示,但是在 IE6 下面 iframe 显示空白(假如在 iframe 区域右键刷新,则能显示 page_b.html 页面内容),而使用 IE6 单独打开 page_b.html 则显示正常。甚是奇怪。
解决:
不使用 a 标签来触发 onclick 事件,使用 div 来替代。
这是一种办法,可没找到原因。
解决方案总结:
1. 不使用 a 标签来触发onclick事件
2. a 标签的 href ="###" 而不使用 href="javascript://" 和 href="javascript:void(0)"
3. 在 click 事件的处理函数中添加 return 语句【强烈推荐】
- onclick="work(); return false;"
复制代码
简单的讲就是你在a的onclick中事件处理函数中没有返回false,来阻止浏览器转到href所指向的地址,而造成的 页面加载其他页面或者 ajax请求 被abort(忽略)掉而引起的.
如下图:
更直观点的话,可以试试下面的代码就明白了.
<a href="http://xqin.cn">Open Invisible Iframe (Only for MSIE 6)</a>
在执行完a的onclick事件后,事件处理函数没有任何返回值(undefined),浏览器会自己去请求a的href所指定的页面去,
而如果有返回false, 则会阻止浏览器转到 href 所指定的地址,浏览器也就不会 abort 掉页面追加的iframe的页面的加载请求.
因为你允许a转向了(在onclick中没有返回false),所以浏览器就转向了,当然这个页面所要加载的其他页面都会被浏览器abort(忽略)掉.
|