阅读:3655回复:12
标签页右键复制失效求教
下面的一段_addmenu.js标签页右键代码失效,在标签页右键可以显示,但是点击后不能实现相应选择,例如“复制当前标签标题”等,请@lonely_8 帮忙看看,怎么修改可以正常使用,万分感谢!!!
浏览器版本91ESR addMenuPlus.uc.js代码如下: function convert(str) { switch (str) { case "%T" : return bw.contentTitle; case "%TITLE%" : return bw.contentTitle; case "%TITLES%" : return bw.contentTitle.replace(/\s-\s.*/i, "").replace(/_[^\[\]【】]+$/, ""); case "%U" : return bw.documentURI.spec; case "%URL%" : return bw.documentURI.spec; case "%H" : return bw.documentURI.spec; case "%HOST%" : return bw.documentURI.spec; case "%S" : return context.textSelected || ""; case "%SEL%" : return context.textSelected || ""; case "%L" : return context.linkURL || ""; case "%RLINK%" : return context.linkURL || ""; case "%RLINK_HOST%" : return context.link.host || ""; case "%RLINK_TEXT%" : return context.linkText() || ""; case "%RLINK_OR_URL%": return context.linkURL || bw.documentURI.spec; case "%RLT_OR_UT%" : return context.onLink && context.linkText() || bw.contentTitle; // 链接文本或网页标题 case "%IMAGE_ALT%" : return context.target.alt || ""; case "%IMAGE_TITLE%" : return context.target.title || ""; case "%I" : return context.imageURL || ""; case "%IMAGE_URL%" : return context.imageURL || ""; case "%IMAGE_BASE64%": return img2base64(context.imageURL); case "%M" : return context.mediaURL || ""; case "%MEDIA_URL%" : return context.mediaURL || ""; case "%P" : return readFromClipboard() || ""; case "%CLIPBOARD%" : return readFromClipboard() || ""; case "%FAVICON%" : return gBrowser.getIcon(tab ? tab : null) || ""; case "%FAVICON_BASE64%" : return img2base64(gBrowser.getIcon(tab ? tab : null)); case "%EMAIL%" : return getEmailAddress() || ""; case "%EOL%" : return "\r\n"; } return str; }_addmenu.js代码如下: //标签页右键菜单 new function () { var items = [ { label:"复制当前标签标题", oncommand: function() {addMenu.copy(addMenu.convertText("%TITLES%"));}, image:"" }, { label:"复制当前标签地址", oncommand: function() {addMenu.copy(addMenu.convertText("%URL%"));}, image:"" }, { label:"复制当前标签标题和地址", oncommand: function() {addMenu.copy(addMenu.convertText("%TITLES%\n%URL%"));}, image:"" }, {}, { label:"复制所有标签标题", oncommand: function() {(function(){ var gClipboardHelper = Components.classes['@mozilla.org/widget/clipboardhelper;1'].getService(Components.interfaces.nsIClipboardHelper); var titles = ""; Array.slice(gBrowser.tabContainer.childNodes).forEach(function(tab) { titles += tab.label + "\n"; }); gClipboardHelper.copyString(titles); })();}, image:"" }, { label:"复制所有标签地址", oncommand: function() {(function(){ var gClipboardHelper = Components.classes['@mozilla.org/widget/clipboardhelper;1'].getService(Components.interfaces.nsIClipboardHelper); var URLs = ""; Array.slice(gBrowser.tabContainer.childNodes).forEach(function(tab) { var url = gBrowser.getBrowserForTab(tab).currentURI.spec; URLs += url + "\n"; }); gClipboardHelper.copyString(URLs); })();}, image:"" }, { label:"复制所有标签标题和地址", oncommand: function() {(function() { var gClipboardHelper = Components.classes['@mozilla.org/widget/clipboardhelper;1'].getService(Components.interfaces.nsIClipboardHelper); var txt = ""; Array.slice(gBrowser.tabContainer.childNodes).forEach(function(tab) { var url = gBrowser.getBrowserForTab(tab).currentURI.spec; txt += tab.label + "\n" + url + "\n"; }); gClipboardHelper.copyString(txt); })();}, image:"" }, ]; var menu = TabMenu( { label:"标签页右键菜单", id:"context_TabInfoCopy",onpopupshowing: syncHidden}); image:"", menu(items); }; |
|
1楼#
发布于:2021-08-23 10:49
|
|
2楼#
发布于:2021-08-23 14:02
lonely_8:以前帮人改过,现在还没失效非常感谢,按照修改后可以正常使用, |
|
3楼#
发布于:2021-08-24 10:13
kidzgy:复制当前标签都能用,但复制所有标签的功能(比如复制所有标签标题、复制所有标签地址、复制所有标签标题和地址等)都不能用。按照3楼的脚本,可以正常使用 |
|
4楼#
发布于:2021-08-24 16:04
|
|
5楼#
发布于:2021-08-25 09:30
kidzgy:还是有问题,标签右键是能正常用了,但是在页面空白处右键,菜单倒是不见了。3楼的脚本,删除下面的代码就不会有你说的情况 break; case "popuphiding": if (event.target.id == 'contentAreaContextMenu') { event.target.querySelectorAll(':scope > .addMenu').forEach(m => { m.hidden = true; }); }我也是瞎比对后发现 |
|