javascript - 在 Firefox 中的关闭选项卡按钮上叠加图标

标签 javascript firefox firefox-addon firefox-addon-sdk

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

一些 Firefox 插件已经具有此功能,例如 Tabloc、Tab Utilities 等。但这些是 XUL 插件。我需要做什么才能实现此功能?

Overlay an icon on the close tab button

最佳答案

将此代码复制粘贴到浏览器环境的暂存器中并运行:

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

我用伪元素将图像覆盖在顶部。

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

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

关于javascript - 在 Firefox 中的关闭选项卡按钮上叠加图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23820084/

相关文章:

javascript - firestore 数据结构的最佳实践是什么?

javascript - 将动态输入字段的值添加到数组的纯 Javascript 方法

javascript - 在 Ember 1.0.0 pre 中路由时

firefox - 如何使用 Firefox SDK 插件将 iframe 附加到托管页面?

javascript - 当工作站被锁定时收到通知

javascript - 如何在页面顶部制作多个滚动固定标题/导航栏?

javascript - 引用错误 : event is not defined in Firefox

javascript - Chrome扩展能否动态添加JS文件到本地扩展目录?用户上传还是从网络保存?

firefox-addon - Firefox 插件在自定义窗口中显示名称但没有图标

javascript - 如何使用 Firefox Android 插件的 Websocket