Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与Chrome相比,在IE11中计算offsetWidth值是不同的_Javascript - Fatal编程技术网

Javascript 与Chrome相比,在IE11中计算offsetWidth值是不同的

Javascript 与Chrome相比,在IE11中计算offsetWidth值是不同的,javascript,Javascript,我试图做的是在显示下拉元素之前计算其宽度,然后将该宽度添加到下拉元素中 在Chrome中,Javascript的工作方式应该是这样的,它给了我一个width:349px,这是正确的,但在IE11中,由于某种原因,它将该元素的宽度计算为width:89px,我不能完全确定 额外信息: Navbar下拉列表的构建方式与中的类似,因此它们在首次加载时隐藏,尽管不是使用display:none隐藏,而是使用opacity:0隐藏,因此我认为计算宽度不应该是个问题 下面的JS就是问题所在,只是为了防止我上

我试图做的是在显示下拉元素之前计算其宽度,然后将该宽度添加到下拉元素中

在Chrome中,Javascript的工作方式应该是这样的,它给了我一个
width:349px
,这是正确的,但在IE11中,由于某种原因,它将该元素的宽度计算为
width:89px
,我不能完全确定

额外信息: Navbar下拉列表的构建方式与中的类似,因此它们在首次加载时隐藏,尽管不是使用
display:none
隐藏,而是使用
opacity:0
隐藏,因此我认为计算宽度不应该是个问题

下面的JS就是问题所在,只是为了防止我上传到的下拉列表需要完整的Javascript代码

JS

this.dropdownSections.forEach(function(section) {
  section.el.classList.remove("active");
  section.el.classList.remove("left");
  section.el.classList.remove("right");

  if (section.name == dropdownName) {
    section.el.classList.add("active");
    className = "right";

    // Width of the element is calculated here
    ddWidth = section.content.offsetWidth;
    ddHeight = section.content.offsetHeight;

    section.content.style.width = ddWidth + "px";
    section.content.style.height = ddHeight + "px";

    activeContent = section.content;

    if (options && options.keyboardNavigation) {
      self.registerArrowKeyNavigation(rootEl, section.el);
    }
  } else {
    section.el.classList.add(className);
  }
});
从屏幕截图中可以看到Chrome vs IE11的结果


又一次提醒人们,为什么永远都不应该相信微软浏览器能做任何正确的事情。@Rob Yep,幸运的是它在Edge上工作,但我真的需要让它在IE11上工作