我制作了Google Chrome extension,将文本区域(默认隐藏)插入到文档中。
它出现在所有页面上。页面是HTML时没关系,但在其他页面上它是无用的。例如,当我打开https://raw2.github.com/github/hubot/master/README.md时,我可以看到textarea,即使它有display: none !important
样式(通过类)。它应该被隐藏,但事实并非如此。
如何防止这种奇怪的情况?也许要检查文档类型(是HTML)吗?
答案 0 :(得分:2)
内容脚本样式似乎不适用于使用MIME类型text/plain
提供的文件。这显然是一个错误,所以我在Chromium的错误跟踪器上报告了它,请参阅issue 333234。
解决问题的方法是在文档中插入一个简单的<style>
元素:
document.head.appendChild(document.createElement('style'));
不在您的具体示例中有效,因为内联和外部样式表被Github Content Security Policy(default-src 'none'
)阻止。
我能想到的唯一解决方法是通过JavaScript直接应用样式表:
textarea.style.display = 'none';
// Or,
textarea.style.cssText = 'display:none;';