JavaScript在IE中“意外地調用了方法或屬性訪問”
來源:互聯網
上載者:User
同樣一段代碼,兩次調用,一次通過,一次異常:
function clearSelect(obj){
if(obj && obj.options)
obj.options.length=0;
}
以下是前人的一些經驗:
這是兩個經典異常,不知道原理的話很難定位。從下面的代碼中可用看到發生的條件
<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標記:
<p onclick="innerHTML='<CENTER></CENTER>'"><button>未知的執行階段錯誤</button></p>
下面這個是經典的“無法開啟Internet網站”異常:
<div id="tt"><div><script>document.getElementById("tt").innerHTML=""</script></div></div>
從這些例子可以看到IE的健壯性還是有挺大的提升餘地的。