通过扩展程序javascript访问扩展样式表

时间:2012-04-18 21:30:30

标签: google-chrome-extension

我有一个chrome内容脚本扩展,其中包含一个css文件(mystyle.css),该文件捆绑在扩展CRX中。据我所知,有两种方法可以将此样式表注入页面内容。

无论样式表注入页面的方式如何,我都无法访问与该样式表关联的CSS规则。

注射方法#1:

// From a script running in the context of background.html:
chrome.tabs.insertCSS(tab.id, {file: 'mystyle.css'});

注射方法#2:

// From a script running in the context of the content, already
// injected by the background page via chrome.tabs.executeScript.
var fileref = document.createElement("link");
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href",
    chrome.extension.getURL('mystyle.css'));

从内容上下文中运行的JavaScript,由后台页面注入,当使用方法#1注入时,我无法在document.styleSheets中列出的样式列表中看到样式表。使用方法#2注入时,它使用chrome-extension:// href列出,但工作表的cssRules属性始终为null。

我希望这可以用于链接到来自其他域的文档的CSS工作表,但我的脚本应该可以访问与我的扩展相关的chrome-extension:// URI。

我正在调查的途径是对CSS文件的资源内容的原始字符串访问,我可以为其构建chrome-extension:// URI。我不知道这是否比其他尝试更好,但它似乎应该。

0 个答案:

没有答案