有下面的代碼:Load事件和幀位置變化
$(function() {
$('#ifrm').load(function() {
try {
window.document.domain = "sub_domain.domain";
document.getElementById("ifrm"); // 1
console.log("bla");
document.getElementById("ifrm").id = "new_ifrm"; // 2
window.frames[0].location = "http://server_2.sub_domain.domain/.../iframe_2.html";
}
catch (e) {
console.log("exception!");
alert("Error: " + e);
}
});
});
...
<body>
<iframe src="http://server_2.sub_domain.domain/.../iframe_1.html" id="ifrm" style="height: 100px"></iframe>
</body>
1)在#2線我改變幀ID,並在下一行我加載新的內容框架現在用NEW ID。 輸出是像這樣:
bla
bla
exception! (TypeError: document.getElementById(...) is null)
的問題是,爲什麼在「load」事件再次改變ID如果幀ID是不是現在「IFRM」,而是「new_ifrm」後,開除了?如果第一行產生一個異常(document.getElementById(...)爲空),爲什麼輸出「bla」?該異常不應立即將執行引導至「catch」塊,忽略異常行(#1)之下的任何內容。