none
Microsoft Edge浏览器不支持window.getComputedStyle接口 RRS feed

  • 问题

  • 一个js函数,代码如下:

    ol.dom.outerWidth = function(element) {
      if(navigator.userAgent.indexOf("MSIE")!=-1) {    
          var width = element[0].offsetWidth;
          var style = element[0].currentStyle || window.getComputedStyle(element[0]);            
      }
      else{
          var width = element.offsetWidth;
          var style = element.currentStyle || window.getComputedStyle(element);
      }  
      width += parseInt(style.marginLeft, 10) + parseInt(style.marginRight, 10);
    
      return width;
    };
    

    在Microsoft Edge浏览器(版本 87.0.664.66 (官方内部版本,64位) 上运行出错,出错代码在window.getComputedStyle(element);这句,错误信息是:ol-debug.js:47206 Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'。


    前无古人,后无来者

    2021年1月5日 10:44

全部回复

  • Hi clever101,

       1.Microsoft Edge浏览器支持window.ComputedStyle。

       2.如果你的element是用jquery选择器匹配得到的,那么就会出现这个错误。  

       var element = $("#test");

         因为window.ComputedStyle(element,[pseudoElt])的第一个参数element应该是一个元素,但是使用jquery选择器得到是在dom中找到的匹配元素的集合,因此你需要使用javascript获取匹配的元素,比如使用document的getElementById返回一个匹配特定I的元素。

       var element=document.getElementById("test");

    Best Regards,

    Yihui Sun

    2021年1月6日 6:29