我收到错误`在我的代码的这一行,严格模式' 中不允许对只读属性进行分配:
wrapper.style = 'transition: transform 3s;';
这是它所处的功能的一部分:
'use strict';
function work() {
var wrapper = document.getElementById( 'wrp' ),
infoPage = document.getElementById( 'i-pg' ),
body = document.getElementById( 'body' ),
carA = document.getElementById( 'car-a' ),
keyA = document.getElementById( 'key-a' ),
manualA = document.getElementById( 'manual-a' ),
wheelA = document.getElementById( 'wheel-a' );
if( this.id === 'info' ) {
wrapper.style = 'transition: transform 3s;'; //PROBLEM LINE
wrapper.classList.add( 'up' );
body.classList.add( 'dark' );
infoPage.classList.remove( 'down' );
}
}
此代码适用于我测试过的所有现代浏览器。仅在IE11中,这会破坏整个站点,阻止所有后续行运行。
如果我拿出第一行:'use strict';
一切正常。
在保持严格模式的同时有一个简单的修复方法吗?或者只是针对IE11并以某种方式删除该浏览器的严格模式?
可能有更好的方法。
答案 0 :(得分:3)
为什么不修复它,而不是忽略错误?
wrapper.style.transition = 'transform 3s;';
答案 1 :(得分:1)
我认为您可能会犯错误,因为您尝试将transform 3s
分配给样式属性,而实际上您应该将其分配给过渡属性。
像这样:wrapper.style.transition ='变换3s&#39 ;;
答案 2 :(得分:0)
结帐:
显然你应该使用像
这样的东西myEle.style.cssText = "color: red;" // or
myEle.setAttribute("class", "myClass"); // Multiple style properties
//For newly created style sheet objects, you must first append the element to the document before you can set cssText.
但是,即使应用了该修复程序后,我仍然会收到相同的错误...