|
阅读:5393回复: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:24
我这里是将addMenuPlus.uc.js这个文件的第885、887、889行return后面的的bw替换成gBrowser就可以了,但是缺点就在它只能复制当前页面的标题
function convert(str) {
switch (str) {
case "%T" :
return gBrowser.contentTitle;
case "%TITLE%" :
return gBrowser.contentTitle;
case "%TITLES%" :
return gBrowser.contentTitle.replace(/\s-\s.*/i, "").replace(/_[^\[\]【】]+$/, ""); |
|
|
2楼#
发布于:2021-08-23 10:49
|
|
|
3楼#
发布于:2021-08-23 12:49
以前帮人改过,现在还没失效
https://paste.ubuntu.com/p/fF9pnvmvxK/ _addmenu.js 参考 https://www.firefox.net.cn/read-121198 |
|
|
4楼#
发布于:2021-08-23 14:02
lonely_8:以前帮人改过,现在还没失效非常感谢,按照修改后可以正常使用, ![]() |
|
|
5楼#
发布于:2021-08-24 00:42
复制当前标签都能用,但复制所有标签的功能(比如复制所有标签标题、复制所有标签地址、复制所有标签标题和地址等)都不能用。
你们的能用吗? 脚本用的是3楼的代码,配置文件用的是http://controlc.com/44d7a8d2 |
|
|
6楼#
发布于:2021-08-24 10:13
kidzgy:复制当前标签都能用,但复制所有标签的功能(比如复制所有标签标题、复制所有标签地址、复制所有标签标题和地址等)都不能用。按照3楼的脚本,可以正常使用 |
|
|
7楼#
发布于:2021-08-24 11:25
我重新试了下,用的脚本和配置文件都是3楼的,红线框内的4个功能都没有效果,其他有效果。 |
|
|
8楼#
发布于:2021-08-24 16:04
|
|
|
9楼#
发布于:2021-08-24 18:39
|
|
|
10楼#
发布于:2021-08-25 03:55
还是有问题,标签右键是能正常用了,但是在页面空白处右键,菜单倒是不见了。
我从RunningCheese处淘到一脚本,这个脚本倒是不会出现菜单不见的问题,不过却有另外的问题,就是复制标签图标的BASE64或是页面图像的BASE64,都会让FF陷入一个假死状态。正常的关闭火狐,虽然火狐看起来是关了,但是后台还保留着进程,必须用任务管理器结束进程才能重新打开火狐。 它的脚本是这样的:https://pastebin.ubuntu.com/p/Nkwnq4jB4J/ 我的配置文件:https://pastebin.ubuntu.com/p/ywvz9sS8jj/ 搞最后发现我本身初始的脚本就能正常使用了 |
|
|
11楼#
发布于: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;
});
}我也是瞎比对后发现 |
|
|
12楼#
发布于:2021-08-25 11:10
|
|
