frame.addEventListener不适用于IE

时间:2011-12-29 05:49:58

标签: javascript internet-explorer iframe focus addeventlistener

我有一个加载到iframe的文档。现在我想知道该文档的“body”元素何时获得事件“焦点”。我在其他浏览器中使用addEventListener已经成功,但是IE(8具体)给了我这个错误:

Object doesn't support this property or method

我实现了这样:

//This works in Chrome, Opera, Safari and Firefox but not in IE

var myFrame = document.getElementById("my-i-frame");
var frame = (myFrame.contentWindow || myFrame.contentDocument);
frame.addEventListener("focus", function(){alert('works')},false);

我也尝试过:

frame.document.addEventListener("focus", function(){alert('works')},false);

在你问为什么要这样做之前,让我解释一下:

我已经创建了一个html WYSIWYG编辑器,当用户在框架内单击以开始编辑时,我想调整iframe的大小。要做到这一点,我能想到的唯一方法是进行“焦点”事件,然后在触发时执行我想要做的事情。我希望听起来很清楚(原谅我。我不是说英语:-))

2 个答案:

答案 0 :(得分:2)

尝试:


if(iframe.addEventListener)
   iframe.addEventListener('load', func, true);
else if(iframe.attachEvent)
   iframe.attachEvent('onload',func);

答案 1 :(得分:0)

IE8不支持addEventListener