在ie11 / Edge on element中设置宽度 - 在严格模式下不允许分配给只读属性

时间:2018-03-22 10:52:16

标签: javascript internet-explorer ecmascript-5

我选择一个元素,我需要根据某些规则更改元素的大小,在主流浏览器中都可以正常工作,但在ie11 / Edge中它不起作用。

this.visContainer = this.$element[0].querySelector('.am-visualization-render-area__vis-container');

这是出错的地方我正在尝试将值设置为只读属性

 const visContainerBounds = this.visContainer.getBoundingClientRect();
 visContainerBounds.width -= this.marginHorizontal;
 visContainerBounds.height -= this.marginVertical;

这会返回错误

  

在严格模式下不允许分配给只读属性

我也试过

this.visContainer.clientWidth -= this.marginHorizontal;
this.visContainer.clientHeight -= this.marginVertical;
const visContainerBounds = this.visContainer.getBoundingClientRect();

现在从我的发现来看,这是由ECMAScript5标准之后的ie和edge引起的,并且chrome ff safari不是这种情况。

我的问题是如何在没有抛出此错误的情况下设置元素宽度的值?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

你不能直接设置风格;像:

this.visContainer.style.width="100px";