Javascript 如何在严格模式下设置元素样式属性?
鉴于: 在Safari中使用严格模式进行测试时,我看到Javascript 如何在严格模式下设置元素样式属性?,javascript,css,Javascript,Css,鉴于: 在Safari中使用严格模式进行测试时,我看到TypeError:尝试分配给只读属性。在iframe.style=行上 虽然为.style要求一个setter或类似的东西可能是有意义的,但我似乎找不到任何关于这是一个要求的信息,也找不到我应该做什么的建议 一些搜索让我找到了,这可能是我想要的,但我不确定。即使这样做是正确的,我仍然没有找到任何关于哪种浏览器支持这一点的信息;或者如何确保它在使用/不使用严格模式以及在新/旧浏览器中工作。如果采用这种方法,则需要编辑element.style
TypeError:尝试分配给只读属性。
在iframe.style=
行上
虽然为.style
要求一个setter或类似的东西可能是有意义的,但我似乎找不到任何关于这是一个要求的信息,也找不到我应该做什么的建议
一些搜索让我找到了,这可能是我想要的,但我不确定。即使这样做是正确的,我仍然没有找到任何关于哪种浏览器支持这一点的信息;或者如何确保它在使用/不使用严格模式以及在新/旧浏览器中工作。如果采用这种方法,则需要编辑
element.style.cssText
而不是element.style
发件人:
不能通过将字符串指定给(只读)样式属性来设置样式,如elt.style=“color:blue;”。这是因为style属性返回CSSStyleDeclaration对象
请注意,覆盖它将覆盖元素上所有现有的内联样式,因此通常需要设置element.style.display=“none”代码>取而代之
通常,更好的方法是修改元素所属的类,并在单独的样式表中定义样式。Tryiframe.style.display=“none”代码>根本不设置内联样式。指定一个类名和该类名的样式;e、 g.iframe.classList.add('hidden')代码>和CSS。隐藏{display:none;}
。这将为你省去很多麻烦。谢谢,我试试看。你是否碰巧有一个解释这种行为的参考资料?我想更详细地了解为什么。样式是只读的。不过,操纵类会好得多,这是真的。
body = document.getElementsByTagName('body')[0];
iframe = document.createElement('iframe');
iframe.src = protocol + settings.scriptUrl + a;
iframe.height = 1;
iframe.width = 1;
iframe.scrolling = 'no';
iframe.frameborder = 0;
iframe.style = 'display:none';
body.appendChild(iframe);