我有类似以下代码的内容:
for(var i=0;i<4;i++) {
frm = document.createElement("iframe");
frm.width = "100";
frm.height = "100";
frm.src = "source.php";
frm.id = "something";
frm.attachEvent("load", function() { alert(this.id); //Here I need alternative for this.id });
var frameDiv = document.getElementById("frameDiv");
frameDiv.appendChild(frm);
}
它被简化了,但基本上它在某个 div 中创建了四个 iframe,当它完全加载时,我需要根据每个帧的 id 触发一些动作。它运行良好,但问题出在 IE 中。IE 不知道 operator this,所以我无法访问内部框架的 id。有什么替代方法可以用于 IE 吗?
谢谢你的帮助!
Abhijit:实际上,整个代码是这样的:
if(frm.addEventListener) {
frm.addEventListener("load", function() { alert(this.id); },false);
}
else if(frm.attachEvent) {
frm.attachEvent("onload", function() { alert(this.id); });
}
else {
frm.onload=function() { alert(this.id); };
}
所以它应该适用于所有浏览器。