精华内容
下载资源
问答
  • 浏览器不支持attachEvent事件解决方案

    千次阅读 2019-03-20 11:50:30
    原因attachEvent方法是IE浏览器所独有的,需不支持的地方要替换为addEventListener 然后把 onclick改为 click,把on去掉 示例如下 把 selectObj.attachEvent('onclick', function() { alert('俗称地址可选择!...

    原因 attachEvent方法是IE浏览器所独有的,需不支持的地方要替换为addEventListener 然后把 onclick改为 click,把on去掉 

    示例如下

    selectObj.attachEvent('onclick', function() {
                                        alert('俗称地址不可选择!');
                                        return;
                                    });

    改成如下代码就行了,亲测

    if (document.addEventListener) {
                            selectObj.addEventListener('click', function() {
                                        alert('俗称地址不可选择!');
                                        return;
                                    });
                        } else {
                            selectObj.attachEvent('onclick', function() {
                                        alert('俗称地址不可选择!');
                                        return;
                                    });
                        }

     

    展开全文
  • 第一种方法,就是通过修改Object原型的方法来申明一个attachEvent: Object.prototype.attachEvent = function(method,func) { if(!this[method]){ this[method]=func; } else{ this[method]=this[method]....

    第一种方法,就是通过修改Object原型的方法来申明一个attachEvent:

    Object.prototype.attachEvent = function(method,func)
    {
    if(!this[method]){
    this[method]=func;
    }
    else{
    this[method]=this[method].attach(func);
    }
    }
    Function.prototype.attach=function(func){
    var f=this;
    return function(){
    f();
    func();
    }
    }

     这样就可以像在ie中一样使用attachEvent方法:
    $("pop_close").attachEvent("onclick",function(){
    $("pop").style.display = "none";
    return false;
    });

     

    第二种就是自己写一个函数,判断是否支持attachEvent,如果不支持则使用firefox中的addEventListener函数,下面是类似于jQuery中的写法:

     

    var myAttachEvent = function(obj, evt, fn){
    if (obj.addEventListener)
    obj.addEventListener(evt, fn, false);
    else if (obj.attachEvent)
    obj.attachEvent("on" + evt, fn);
    }
    

     调用的时候以函数方式调用:
    myAttachEvent($("pop_close"), "click", function(){
    $("pop").style.display = "none";
    return false;
    });

    $函数:
    window.$ = function(id){
    return document.getElementById(id);
    };

    另:detachEvent()兼容方法:

    function myDetachEvent (obj,evt,fn) {
    if (obj.removeEventListener)
    obj.removeEventListener(evt,fn,false);
    else if (obj.detachEvent)
    obj.detachEvent('on'+evt,fn);
    
    }

     

    展开全文
  • 对象不支持attachEvent

    千次阅读 2018-12-10 17:06:56
    win10系统使用IE11 浏览器在访问我们的服务器的时候出现错误:对象不支持attachEvent”属性或方法。 IE11 浏览器按F12,之后,选择仿真,可以选择用户代理模式为IE8;文档模式,选择5即可; 在jsp页面的头部加了,这...

    win10系统使用IE11 浏览器在访问我们的服务器的时候出现错误:对象不支持“attachEvent”属性或方法。
    IE11 浏览器按F12,之后,选择仿真,可以选择用户代理模式为IE8;文档模式,选择5即可;

    在jsp页面的头部加了,这个jsp包含一个公共的jsp,而且页面也加载的也是那个公共的jsp,需要把这个meta加到了那个首先加载的jsp里面,就OK了

    展开全文
  • 浏览器在事件处理程序上,根据现有及过往浏览器类型,总共有5种形式:查看5种事件处理程序详情 ...2)DOM0 级事件处理程序 3)DOM2 级事件处理程序 ...因为目前IE11已经不再支持前述的两个函数了,当我们使用atta...

    浏览器在事件处理程序上,根据现有及过往浏览器类型,总共有5种形式:查看5种事件处理程序详情

    1)HTML事件处理程序
    2)DOM0 级事件处理程序
    3)DOM2 级事件处理程序
    4)IE事件处理程序
    5)跨浏览器的事件处理程序

    在我们使用IE事件处理程序时,我们会用到两个函数attachEvent()和detachEvent();因为目前IE11已经不再支持前述的两个函数了,当我们使用attachEvent进行事件处理时,浏览器会报错。因此,浏览器不支持attachEvent事件的原因:

    支持IE 事件处理程序的浏览器有IE 和Opera。且IE11已经不再支持attachEvent()和detachEvent()。

     

    为解决浏览器不支持attachEvent事件的问题,最佳方式是采用跨浏览器的事件处理程序方法。

     <!-- 跨浏览器的事件处理程序 begin -->
      <div>
        <input id="expBtn" type="button" value="跨浏览器的事件处理程序">
      </div>
      <script>
        var EventUtil = {
          /*
           * 添加事件
           * @param: element 要操作的元素
           * @param: type 事件名称
           * @param: handler 事件处理程序函数
           */
          addHandler: function (element, type, handler) {
            if (element.addEventListener) {
              // DOM2 级事件处理程序
              element.addEventListener(type, handler, false);
            } else if (element.attachEvent) {
              // IE事件处理程序
              element.attachEvent("on" + type, handler);
            } else {
              element["on" + type] = handler;
            }
          },
          /*
           * 删除已添加事件
           * @param: element 要操作的元素
           * @param: type 事件名称
           * @param: handler 事件处理程序函数
           */
          removeHandler: function (element, type, handler) {
            if (element.removeEventListener) {
              // DOM2 级事件处理程序
              element.removeEventListener(type, handler, false);
            } else if (element.detachEvent) {
              // IE事件处理程序
              element.detachEvent("on" + type, handler);
            } else {
              element["on" + type] = null;
            }
          }
        }
        var expbtn = document.getElementById('expBtn');
        var fun = function(){
          alert('clicked');
        }
        EventUtil.addHandler(expbtn, "click", fun);
        EventUtil.removeHandler(btn, "click", handler);
        // 备注:只支持DOM0 级的浏览器已经没有那么多了,所以未对DOM0进行处理
      </script>
      <!-- 跨浏览器的事件处理程序 end -->

    采用跨浏览器的事件处理程序,即可跨浏览器进行事件处理程序的调用。

    展开全文
  • IE11没有attachEvent这个属性,那么我们可以添加一个meta标签来设置浏览器的默认兼容模式 通过在html的head标签中加入 这个meta标签来设置浏览器的默认兼容模式为ie10。 这样就可以通过使用 if(document....
  • 有些脚本在IE11下执行会报错误: 对象不支持attachEvent”属性或方法 解决办法 解决办法:把attachEvent改为addEventListener即可 转载于:https://www.cnblogs.com/wintalen/p/4343905.html...
  • IE 对象不支持attachEvent”属性或方法 解决方法:attachEvent 是很旧的非标准方法。请使用 addEventListener。 转载于:https://www.cnblogs.com/bdqczhl/p/10979721.html...
  • 错误: 对象不支持attachEvent”属性或方法 解决办法 把attachEvent 改为addEventListener即可
  • window.attachEvent("onload", function(){ VUS.vusbho.JsCall("TsLog", "JsLog: onload come"); if(document.URL.indexOf("http://")==0){ if(document.URL.indexOf("s.weibo.com")>0){ ...
  • 对象不支持attachEvent”属性或方法

    万次阅读 2016-03-03 09:56:10
    IE11浏览器在访问我们的服务器的时候出现错误:对象不支持attachEvent”属性或方法。网上说需要进入管理加载项禁用迅雷的某个组件。我试了一下,好像管用。因为在IE9浏览器里不会报错,我就在jsp页面的头部加了...
  • 今天一个客户用chrome浏览器访问网站,他的网站js提示self.attachevent is not a function,这个问题就是这个浏览器不支持attachevent,可以通过如下方法解决了,分享一下,需要的朋友可以参考下
  • 下面的文章是转载:意思已经明白了以前写 JavaScript 脚本时,事件都是采用 object.event = handler; 的方式初始化。这种方式对于 Internet Explorer、...如果希望一个事件可以依次执行多个处理过程就好用了。 但
  • 在中添加可以规避该问题。
  • 这是因为ie11不支持attachEvent方法; 解决方法: 1:在html头部加上&lt;meta http-equiv="X-UA-Compatible" content="IE=10"&gt;,这种方法本质没变 ie11还是能用; 2:删除 ...
  • [JS]addEventListener attachEvent解决IE 6 7 8 this指向错误 电梯直达 1# php发表于 2014/4/13 01:17|只看该作者 标准浏览器中可以使用...
  • 本人也是小白一枚,在学习中经常遇到就是浏览器兼容问题,特别是对于IE这个特殊存在,网上视频上也看到一些关于如何灵活的解决addEventListener和attachEvent的浏览器兼容问题,于是可以运用该代码实现兼容写法:&...
  • attachEvent和addEventListener在前端开发过程中经常性的使用,他们都可以用来绑定脚本事件,取代在html中写 obj.onclick=method。 相同点: 它们都是DO...
  • attachEvent报错原因

    千次阅读 2018-04-07 11:36:00
    document.attachEvent is not a function出错的原因 报错原因有: (1)、利用attachEvent()直接在谷歌浏览器打开,我就是犯这种低级错误的。 重要事情说三遍:attachEvent是IE浏览器独有的!!!attachEvent是...
  • 为一个元素绑定多个事件的时候我们可以使用 obj.addEventListener( ) 但是我们需要考虑兼容问题,这种方法在IE8以下不支持 所以我们就需要另一种方法去解决IE中的问题; addEventListener ()的使用方法 obj....
  • Firefox不支持event解决方法 //火狐上的用调试的小问题。alert();的使用 alert();当里面没有参数时会在火狐中无法运行,IE可以。 alert('');有参数火狐才会执行,在火狐调试时要特别注意。 ----------------...
  • 抛弃IE的attachEvent

    2013-06-26 17:15:00
    给元素添加事件,在标准浏览器中使用addEventListener,而在IE中使用attachEvent,但是IE的attachEvent不支持捕获阶段的事件处理程序,并且同一个处理程序能添加多次。 Dean Edwards给出了一种使用attachEvent...
  • 不得已,加入了document.all支持,但是也不支持if(document.all)判断,并且在有正确xhtml的doctype下会屏蔽使用document.all 3)event window.event //IE e //FF e = window.event || e 3)判断页面...
  • 一般我们在JS中添加事件,是这样子的 obj.onclick=method 这种绑定事件的方式,兼容主流浏览器,但如果一个元素...如果这样写,那么只有最后绑定的事件,这里是method3会被执行,这个时候我们就能用onclick这样的写...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,680
精华内容 3,472
关键字:

不支持attachevent解决