1

在 Web 浏览器中运行时,我可以这样做来动态注入样式表:

var link = document.createElement('link'),
    head = document.getElementsByTagName('HEAD')[0];

link.rel  = 'stylesheet';
link.type = 'text/css';
link.href = '/path/to/stylesheet.css';
head.appendChild(link);

有没有办法在 XULRunner 中做同样的事情?我已经看到您可以使用调用Components.interfaces.mozIJSSubScriptLoader来加载 JavaScript,但是 CSS 是否存在相同的功能?

4

1 回答 1

1

您可以尝试使用样式表服务。就像是:

var sss = Cc["@mozilla.org/content/style-sheet-service;1"]
          .getService(Ci.nsIStyleSheetService);
var ios = Cc["@mozilla.org/network/io-service;1"] .getService(Ci.nsIIOService);
var uri = ios.newURI("chrome://pluginname/skin/notes.css", null, null);

if(!sss.sheetRegistered(uri, sss.USER_SHEET)) {
    sss.loadAndRegisterSheet(uri, sss.USER_SHEET);
}

更多例子

于 2011-01-28T14:28:55.027 回答