gpt4 book ai didi

javascript - attachEvent 与 addEventListener

转载 作者:可可西里 更新时间:2023-11-01 01:58:16 25 4
gpt4 key购买 nike

我在使 attachEvent 起作用时遇到了问题。在所有支持 addEventListener 处理程序的浏览器中,下面的代码就像一个魅力,但在 IE 中是一个彻头彻尾的灾难。他们有自己的(不完整的)变体,称为 attachEvent。

这就是交易。如何让 attachEvent 以与 addEventListener 相同的方式工作?

代码如下:

function aFunction(idname)
{
document.writeln('<iframe id="'+idname+'"></iframe>');
var Editor = document.getElementById(idname).contentWindow.document;

/* Some other code */

if (Editor.attachEvent)
{
document.writeln('<textarea id="'+this.idname+'" name="' + this.idname + '" style="display:none">'+this.html+'</textarea>');
Editor.attachEvent("onkeyup", KeyBoardHandler);
}
else
{
document.writeln('<textarea id="hdn'+this.idname+'" name="' + this.idname + '" style="display:block">'+this.html+'</textarea>');
Editor.addEventListener("keyup", KeyBoardHandler, true);
}
}

这会调用如下所示的函数 KeyBoardHandler:

function KeyBoardHandler(Event, keyEventArgs) {
if (Event.keyCode == 13) {
Event.target.ownerDocument.execCommand("inserthtml",false,'<br />');
Event.returnValue = false;
}

/* more code */
}

我不想使用任何框架,因为 A) 我正在尝试学习和理解一些东西,并且 B) 任何框架都只是我不会使用的代码的过载。

非常感谢任何帮助!

最佳答案

下面是跨浏览器的操作方法,仅供引用。

var myFunction=function(){
//do something here
}
var el=document.getElementById('myId');

if (el.addEventListener) {
el.addEventListener('mouseover',myFunction,false);
el.addEventListener('mouseout',myFunction,false);
} else if(el.attachEvent) {
el.attachEvent('onmouseover',myFunction);
el.attachEvent('onmouseout',myFunction);
} else {
el.onmouseover = myFunction;
el.onmouseout = myFunction;
}

引用:http://jquerydojo.blogspot.com/2012/12/javascript-dom-addeventlistener-and.html

关于javascript - attachEvent 与 addEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3743446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com