Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 如何在严格模式下设置元素样式属性?_Javascript_Css - Fatal编程技术网

Javascript 如何在严格模式下设置元素样式属性?

Javascript 如何在严格模式下设置元素样式属性?,javascript,css,Javascript,Css,鉴于: 在Safari中使用严格模式进行测试时,我看到TypeError:尝试分配给只读属性。在iframe.style=行上 虽然为.style要求一个setter或类似的东西可能是有意义的,但我似乎找不到任何关于这是一个要求的信息,也找不到我应该做什么的建议 一些搜索让我找到了,这可能是我想要的,但我不确定。即使这样做是正确的,我仍然没有找到任何关于哪种浏览器支持这一点的信息;或者如何确保它在使用/不使用严格模式以及在新/旧浏览器中工作。如果采用这种方法,则需要编辑element.style

鉴于:

在Safari中使用严格模式进行测试时,我看到
TypeError:尝试分配给只读属性。
iframe.style=
行上

虽然为
.style
要求一个setter或类似的东西可能是有意义的,但我似乎找不到任何关于这是一个要求的信息,也找不到我应该做什么的建议


一些搜索让我找到了,这可能是我想要的,但我不确定。即使这样做是正确的,我仍然没有找到任何关于哪种浏览器支持这一点的信息;或者如何确保它在使用/不使用严格模式以及在新/旧浏览器中工作。

如果采用这种方法,则需要编辑
element.style.cssText
而不是
element.style

发件人:

不能通过将字符串指定给(只读)样式属性来设置样式,如elt.style=“color:blue;”。这是因为style属性返回CSSStyleDeclaration对象

请注意,覆盖它将覆盖元素上所有现有的内联样式,因此通常需要设置
element.style.display=“none”取而代之


通常,更好的方法是修改元素所属的类,并在单独的样式表中定义样式。

Try
iframe.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);