Javascript 在Firefox中的“关闭”选项卡按钮上覆盖一个图标

Javascript 在Firefox中的“关闭”选项卡按钮上覆盖一个图标,javascript,firefox,firefox-addon,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Firefox Addon Sdk,我正在开发一个SDK插件。我想实现一个名为“保护选项卡”的功能。右键单击选项卡,图标覆盖在“关闭选项卡”按钮上,从而减少意外关闭选项卡的可能性 一些Firefox插件已经有了这个特性,比如Tabloc、Tab实用程序等等,但这些都是XUL插件。我需要做什么来实现此功能 使用浏览器环境将此代码复制粘贴到scratchpad并运行: Cu.import('resource://gre/modules/Services.jsm'); var sss = Cc['@mozilla.org/content

我正在开发一个SDK插件。我想实现一个名为“保护选项卡”的功能。右键单击选项卡,图标覆盖在“关闭选项卡”按钮上,从而减少意外关闭选项卡的可能性

一些Firefox插件已经有了这个特性,比如Tabloc、Tab实用程序等等,但这些都是XUL插件。我需要做什么来实现此功能


使用浏览器环境将此代码复制粘贴到scratchpad并运行:

Cu.import('resource://gre/modules/Services.jsm');
var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
try {
    sss.unregisterSheet(cssUri, sss.USER_SHEET);
} catch (ex) {}

var css = '';
/*css += '[anonid="close-button"] .toolbarbutton-icon:after { content:"rawr"; position:absolute; z-index:999999; width:10px; height:10px; background-color:red; }';*/ //i dont know why but i cant seem to put a before or after pseduo element on the image so i put it on the toolbar-button, if yo ucan figure this one out share with us
css += '[anonid="close-button"]:before { position:absolute; top:5px; background-color:black; width:20px; height:20px; content:""}';
css += '[anonid="close-button"] { pointer-events:none !important; }';
var cssEnc = encodeURIComponent(css);
    var newURIParam = {
        aURL: 'data:text/css,' + cssEnc,
        aOriginCharset: null,
        aBaseURI: null
}
var cssUri = Services.io.newURI(newURIParam.aURL, newURIParam.aOriginCharset, newURIParam.aBaseURI);
sss.loadAndRegisterSheet(cssUri, sss.USER_SHEET);
我在上面用伪元素覆盖一个图像

但是,您只需更改image元素的src,无需在其上覆盖某些内容


顺便说一句,为了防止点击关闭按钮,您不需要覆盖任何内容,您可以像上面那样将指针事件设置为“无”。

当我使用此代码在关闭选项卡按钮上覆盖图标时,所有选项卡上的关闭选项卡按钮都覆盖有图标。我想在活动/当前选项卡上覆盖图标。此外,如何撤消操作,即取消覆盖或删除图标?逆转手术?谢谢
[selected=true][anonid=“close button”]{
我忘了提到,要取消覆盖它,只需取消注册,我在代码的顶部执行:
sss.unregisterSheet(cssUri,sss.USER_SHEET);
所以只要再次运行该位,
cssUri
如果从另一个函数运行,则必须是全局变量。