gpt4 book ai didi

javascript - 将样式表添加到 Firefox Bootstrapped Addon

转载 作者:行者123 更新时间:2023-11-29 19:37:53 30 4
gpt4 key购买 nike

Accordion Using the Stylesheet Service

上述文件还指出:

loadAndRegisterSheet fails if CSS contains #id. '#' must be percent-encoded, details see bug 659650.

行李报告于 2011-05-25 进行。它仍然是一个错误还是已经解决了?

还有另一种添加 CSS 的方法,但它是针对每个窗口的,我更喜欢将其排序。

更新:
这是样式表的内容

#rpnethelper-separator2:last-child { display: none; }
#rpnethelper-menuitem {
list-style-image: url('icon16.png');
}

这是实际代码(加上添加的控制台调用)

register: function(css) {

let sss = Components.classes['@mozilla.org/content/style-sheet-service;1']
.getService(Components.interfaces.nsIStyleSheetService);
let cssURI = Services.io.newURI(css, null, null);
sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET);
},

我用 try{} catch{} 试了一下,没有收到任何错误。
如何/在哪里可以查看 USER_SHEET

目前,我将使用内联样式(不支持伪类),但我仍然想解决这个问题。

最后更新:
出于某种原因,不适用于 USER_SHEET 的代码可以与 AUTHOR_SHEET
一起正常工作有趣的是,毕竟,我认为只为一个伪类进行额外的处理是不值得的,所以我选择了(简单的)内联样式

最佳答案

您忘记指定正确的命名空间。将以下内容作为第一行添加到工作表中。

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");

您已链接的文档状态:

Stylesheets added using this service get applied to both chrome and content documents. Remember to declare the correct namespace if you want to apply stylesheets to XUL documents.

此外,如果您的目标是 Firefox 18 及更高版本(实际上,支持早期版本没有任何优点,因为这些版本不受支持且包含已知的安全漏洞,因此用户不应使用它们),您应该考虑改用 nsIDOMWindowUtils.loadSheet .这只会将工作表加载到实际窗口中,而不是将其全局应用于所有窗口,包括。网站。

if (window instanceof Ci.nsIInterfaceRequestor) {
let winUtils = window.getInterface(Ci.nsIDOMWindowUtils);
let uri = Services.io.newURI(..., null, null);
winUtils.loadSheet(uri, Ci.nsIDOMWindowUtils.AUTHOR_SHEET);
// Remove with winUtils.removeSheet() again on shutdown
}

编辑 大多数时候您会希望使用AUTHOR_SHEET(无论是样式表服务还是窗口实用程序)。这更等同于叠加层中的 xml-stylesheet

loadAndRegisterSheet fails if CSS contains #id. '#' must be percent-encoded, details see bug 659650.

The bag report was made on 2011-05-25. Is it still a bug or has it been resolved?

该错误报告仅适用于 data: URI。此外,该错误报告无效,# 在 URI 中具有特殊含义,因此当它直接成为 URI 的一部分时您必须对其进行编码(如 data: URI)。如果您要注册一个常规的 chrome:/resource:/file:/http: URI,您不需要'需要特殊编码。

关于javascript - 将样式表添加到 Firefox Bootstrapped Addon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24530405/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com