- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在使 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/
我在循环中使用下面的代码。只要我不使用 IE,它就可以工作。 var remove = document.createElement("input"); remove.type = "button";
我真的不明白 AttachEvent 类或 addAttachHandler 是什么。这有什么用呢?有人可以为此发布一个例子吗?非常感谢。 最佳答案 AttachEvent 会在 Widget 附加到
我正在尝试在 JavaScript 中做水平下拉菜单。它在 Firefox 和 Chrome 上运行良好,但在 IE 中却给我带来了麻烦。 这是我的代码: function init(){
我正在尝试构建一个 JavaScript 模块以更好地理解该模式。我正在尝试使用 addEventListener 和 attachEvent 将点击事件附加到按钮,但我无法让我的 console.l
我需要交叉兼容 IE7 向上作为事件监听器。由于我使用的系统,我只能使用外部 js 文件来创建监听器。我希望为所有文本区域框创建一个规则,使它们在包裹文本时增加高度,这意味着您永远不必滚动(它们需要打
我使用这段 jQuery 来启用我页面上的按钮来切换 div。 var SnapEnable = document.getElementById('open-right'); $(SnapEnable
我有一个如下所示的按钮 并且,我尝试在单击此按钮时发出警报,如下所示 document.querySelector('input[type="button"]').attachEvent('onc
我正在尝试将事件附加到 Brightcove 视频,但无法触发它。已遵循 Brightcove 文档中的所有步骤。这是我的代码:
我在使 attachEvent 起作用时遇到了问题。在所有支持 addEventListener 处理程序的浏览器中,下面的代码就像一个魅力,但在 IE 中是一个彻头彻尾的灾难。他们有自己的(不完整的
在 IE 中使用 .attachEvent() 方法,如何使用 this?在 普通 浏览器中,使用 .addEventListener,var this 指向元素,而在 IE 中它指向 窗口对象。 我
我想知道如何分别正确使用addEventListenerattachEvent? window.onload = function (myFunc1) { /* do something */ } f
我的下面的代码在 IE 9 中工作正常,但是当我使用 Chrome 时,我收到错误'element has no method"attachEvent"'。我尝试使用.on 以及 addEventLi
我正在使用 JS 库 - Mousetrap v1.6.1 作为键盘快捷键。 我的 HTML 页面上有 2 个表单:billheaderfrm 和 billfooterfrm。我使用下面的代码绑定(b
我有以下代码... document.attachEvent("onclick", get_func(obj, "on_body_click", "event_target_here")); 我将全局
如果我在 IE11 中按下表单发送按钮“Saada”,我会收到错误消息: Object doesn't support property or method 'attachEvent' 我发现这是一个
我有以下代码以符合 Shiny 标准的方式调用 Javascript 函数:)。请注意,我必须将 elementsList[i] 发送到该函数(this 关键字将不合适),因为事件监听器正在附加到它的
有人知道 obj.attachEvent 在 ie 上是如何工作的吗? 我尝试了几个示例,但它们不起作用。这也与 ie7 兼容吗? 我试过的是这样的: var onload = function( )
我必须将参数传递给 validateNum Javascript 函数(例如 num1、num2) if (num1.attachEvent) { num1.attachEvent("onkeypr
在 jQuery 中,如果我这样做... $('a').click(function(){ // Do something }); ...点击事件存储在 $('a').data('events
我有一个使用 Javascript 的页面,其中我需要一个函数来监听从服务器接收的数据。基本上,只要它到达服务器,我就需要触发该函数。 这看起来非常简单 - 但到目前为止,我尝试过的任何东西都不起作用
我是一名优秀的程序员,十分优秀!