假设:
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);
在Safari中使用严格模式进行测试时,我在TypeError: Attempted to assign to readonly property.
行看到了iframe.style =
。
虽然要求.style
的二传手或类似物可能有意义,但我似乎无法找到有关此要求的任何信息,我也无法找到我应该的建议而是做。
有些搜索引导我CSSStyleDeclaration.setProperty(),这可能是我想要的,但我不确定。即使这是正确的事情,我仍然没有找到关于哪个浏览器支持这个的任何信息;或者如何确保它在有/没有严格模式和新/旧浏览器中都有效。
答案 0 :(得分:12)
如果您采用这种方法,则需要修改element.style.cssText
而不是element.style
。
无法通过将字符串分配给(只读)样式属性来设置样式,如elt.style =" color:blue;"。这是因为style属性返回一个CSSStyleDeclaration对象。
请注意,覆盖它会覆盖元素上的所有现有内联样式,因此您通常希望设置element.style.display = "none";
。
通常,更好的方法是修改元素所属的类,并在单独的样式表中定义样式。