内容样式未应用于GitHub中的文本文件

时间:2014-01-10 10:27:22

标签: javascript css google-chrome google-chrome-extension

我制作了Google Chrome extension,将文本区域(默认隐藏)插入到文档中。

它出现在所有页面上。页面是HTML时没关系,但在其他页面上它是无用的。例如,当我打开https://raw2.github.com/github/hubot/master/README.md时,我可以看到textarea,即使它有display: none !important样式(通过类)。它应该被隐藏,但事实并非如此。

Screenshot

如何防止这种奇怪的情况?也许要检查文档类型(是HTML)吗?

1 个答案:

答案 0 :(得分:2)

内容脚本样式似乎不适用于使用MIME类型text/plain提供的文件。这显然是一个错误,所以我在Chromium的错误跟踪器上报告了它,请参阅issue 333234

解决问题的方法是在文档中插入一个简单的<style>元素:

document.head.appendChild(document.createElement('style'));

在您的具体示例中有效,因为内联和外部样式表被Github Content Security Policydefault-src 'none')阻止。 我能想到的唯一解决方法是通过JavaScript直接应用样式表:

textarea.style.display = 'none';
// Or,
textarea.style.cssText = 'display:none;';