如何在 XULRunner 中动态加载样式表?

发布于 2024-10-15 02:04:10 字数 430 浏览 2 评论 0原文

在 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);

Is there a way to do the same in XULRunner?我已经看到您可以使用名为 Components.interfaces.mozIJSSubScriptLoader 的东西来加载 JavaScript,但是 CSS 是否存在相同的功能?

When running in a web browser, I can do this to dynamically inject a stylesheet:

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);

Is there a way to do the same in XULRunner? I've seen you can use something called Components.interfaces.mozIJSSubScriptLoader to load JavaScript, but does the same capability exist for CSS?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦年海沫深 2024-10-22 02:04:10

您可以尝试使用样式表服务。例如:

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);
}

更多示例

You can try using the style sheet service. Something like:

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);
}

More examples.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文