我创建了一个执行以下代码的书签,向页面添加 CSS 样式。它适用于 Chrome 和 Firefox 中的所有尝试过的网站,但不适用于 IE 上的某些网站。失败的网站总是相同的。
对于某些网站,第四行失败,并显示“意外调用方法或属性访问”(仅在 IE 上)。
var head = document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.type = 'text/css';
style.appendChild(document.createTextNode(""));
head.appendChild(style);
两个网站在 IE 10 上失败:
http://www.momswhothink.com/cake-recipes/banana-cake-recipe.html
http://www.bakerella.com/
最佳答案
我认为你的问题是这一行:
style.appendChild(document.createTextNode(""));
此处,您将 Text Node
插入到 Style
元素中,根据 HTML 规范,这是不允许的,除非您指定了 scoped
> 样式属性。
查看style的规范这里(文本节点
是流程内容)。
您可以找到以跨浏览器方式创建样式元素的好方法 here .
关于javascript - 意外调用方法或属性访问 -appendChild(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18410061/