2014-07-01 48 views
0

在下面的代碼中,除了在「Object」標記中提到的那個之外,所有onerror事件都正常工作。沒有名稱爲「helloworld.swf」的文件,但沒有觸發onerror事件。任何人都可以解釋這一點。onerror事件到html標記對象

<html> 
<head> 
<script type="text/javascript"> 
<!-- 
window.onerror = function (msg, url, line) { 
    alert("Message : " + msg); 
    alert("url : " + url); 
    alert("Line number : " + line); 
} 
//--> 
</script> 
</head> 
<body> 
<p>Click the following to see the result:</p> 
<form> 
<input type="button" value="Click Me" onclick="myFunc1();" /><br/> 
<input type="text" dir="rtl"> 
</form> 
<object width="400" height="400" data="helloworld.swf" onerror="alert('helloworld.swf not found')"><br/> 
</object> 
<img src="myimage.gif" onerror="alert('image not found')"/><br/> 
</body> 
</html> 

P.S:參見鏈接 「http://www.w3schools.com/jsref/event_onerror.asp」,明確表示onerror事件是由 「對象」 HTML標記的支持。

+3

w3c和mdn沒有對象標籤的onerror屬性。參考:http://www.w3.org/wiki/HTML/Elements/object和https://developer.mozilla.org/en-US/docs/Web/HTML/Element/object。請參閱MDN或其他標準化網站。他們有很好的標準文件。 –

+1

http://www.w3fools.com/請使用其他文檔 – jolsalazar

回答

0

<object>有一個load事件,但並不總是有一個error事件。後者似乎取決於加載的對象的類型。

在Chrome中以下只觸發load,在邊緣,IE和FX它激發error

var logDiv = document.getElementById('log'); 
 
function logEvt(e) { 
 
    logDiv.appendChild(document.createTextNode("\n\t" + e.type + ": " + JSON.stringify(e))); 
 
} 
 

 
var obj = document.getElementById('obj'); 
 
obj.addEventListener('error', logEvt); 
 
obj.addEventListener('load', logEvt);
#log { border:1px solid black; }
<object id="obj" width="100" height="100" data="not-there" type="image/png">Content shown on error.</object> 
 
<pre id="log">Log:</pre>

這可能是隻在瀏覽器的錯誤。

documentation you have referenced使用術語對象來指代元件的實例被訂閱的,沒有特別的<object>標籤。這些示例涉及<img>標記,它會觸發error事件。

MDNW3似乎都沒有指定<object>標記的任何事件。