emu in blogjava

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  171 随笔 :: 103 文章 :: 1052 评论 :: 2 Trackbacks
这是两个经典异常,不知道原理的话很难定位。从下面的代码中可用看到发生的条件

<iframe src="javascript:'<script>top.ff1={abc:function(){}}<\/script>'" width=0 height=0 name="f1"></iframe>
<button onclick="f1.location='about:blank';setTimeout('alert(ff1.abc())',0)">不能执行已经释放的代码</button> 

<iframe src="javascript:'<script>top.ff2={abc:function(){}}<\/script>'" width=0 height=0 name="f2"></iframe>
<button onclick="f2.location='about:blank';setTimeout('alert(ff2.toString())',0)">意外地调用了方法或属性访问</button> 


p标签的innerHTML不能插入center标记:

<onclick="innerHTML='<CENTER></CENTER>'"><button>未知的运行时错误</button></p>

下面这个是经典的“无法打开Internet站点”异常:
<div id="tt"><div><script>document.getElementById("tt").innerHTML=""</script></div></div>

从这些例子可以看到IE的健壮性还是有挺大的提升余地的。
posted on 2007-08-11 03:53 emu 阅读(2764) 评论(5)  编辑  收藏

评论

# re: 经典javascript异常 2007-08-13 13:18 emu
数组对象自带有一点clone功能,因此对于第二个经典异常,有个简单的应对方案,不过只适用于简单类型数组对象。
<iframe src="javascript:'<script>var o=[1,2,3,&quot;abc&quot;];top.ff2=new top.Array().concat(o);<\/script>'" width=0 height=0 name="f2"></iframe>
<button onclick="f2.location='about:blank';setTimeout('alert(ff2.toString())',0)">这个方法只适用于简单类型数组对象</button>
  回复  更多评论
  

# re: IE的经典javascript异常 2007-11-22 10:16 bojna
写出这样的代码,多少有点变态  回复  更多评论
  

# re: IE的经典javascript异常 2007-11-27 17:23 dh20156风之石
呵呵,是够经典的! ^_^  回复  更多评论
  

# re: IE的经典javascript异常 2007-12-18 16:37 emu
今天又发现IE的bug,在图片的缓存策略是Cache-Control: no-cache的情况下,访问img对象的fileModifiedDate、fileCreatedDate或者mimeType,居然会抛异常。  回复  更多评论
  

# re: IE的经典javascript异常 2008-04-24 14:28 emu
对于“无法打开Internet站点”可以参考这篇文章
http://blogs.msdn.com/ie/archive/2008/04/23/what-happened-to-operation-aborted.aspx  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: