【发布时间】:2010-08-26 06:51:09
【问题描述】:
在发布之前,我尝试在本网站和谷歌上搜索解决方案,但现在很幸运。
我在使用 IE8 时遇到问题,下面的代码会即时添加 IFRAME,并且在 Chrome、Firefox 和 IE7 中运行良好。
问题是 不只在 IE8 中触发的 keyHandler() 函数。
将事件跨浏览器附加为 onkeydown 的最佳解决方案是什么?
(Safari 和 Opera 也会很好地支持,IE9 是否也支持此代码?)
附言我目前使用 prototype.js,嵌入的 blank.htm 具有 contenteditable on 和正确的 DOCTYPE ->(也在主页中函数被调用)
我在下面发布代码,并提前感谢您的建议和提示
function addFrame() {
var editorFrame = 'myEditor', iFrame;
var newFrame = new Element('iframe', {width: '320px', height: '70px',id: editorFrame, name: editorFrame, src:'/blank.htm'});
$('container').appendChild(newFrame);
if(document.all) {
iFrame = window.frames[editorFrame];
if (window.document.addEventListener)
iFrame.document.addEventListener('keydown', keyHandler, false);
else
iFrame.document.attachEvent('onkeydown', keyHandler); // OK IE7
}
else {
// OK Firefox, Chrome
iFrame = $(editorFrame).contentWindow;
iFrame.addEventListener('keydown', keyHandler, false);
}
}
【问题讨论】:
标签: javascript events iframe internet-explorer-8