warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
阅读:2047回复:13

升级到53后,右键点击链接打开新标签页脚本的问题

楼主#
更多 发布于:2017-04-21 17:53
以前用这个uc脚本,右键点击链接就会打开新标签页。现在虽然也能打开,但同时菜单也打开了。升级到53后才这样,大家看看怎么改。正常情况下在没有连接的情况下点击右键才会出菜单,现在在有连接的地方右键点击也出菜单了。









// ==UserScript==
// @name            RightClickPlus.uc.js
// @description        右键新标签页打开链接,在链接上 Ctrl + 右键打开菜单
// ==/UserScript==
(function() {
    var x = true;  // false: 前台 | true: 后台

    function $(id) document.getElementById(id);

    gBrowser.mPanelContainer.addEventListener('click', function(e) {
        if (e.button == 2 && !e.ctrlKey) {
            var onlink = XULBrowserWindow.overLink;
            var href = e.target.href || e.target.parentNode.href || onlink;
            if (href && onlink !== "") {
                if (/^javascript:/i.test(onlink.toString())) return;
                e.preventDefault();
                e.stopPropagation();
                $("contentAreaContextMenu").hidePopup();
                gBrowser.moveTabTo(gBrowser.loadOneTab(href, {inBackground: x}), gBrowser.mCurrentTab._tPos + 1);
            }
        }
    }, false);
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
1楼#
发布于:2017-04-21 21:07
试试
$("contentAreaContextMenu").hidePopup();
改成
setTimeout(x=>$("contentAreaContextMenu").hidePopup(),50)
-いたんですか? -ええ、ずっと
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
2楼#
发布于:2017-04-22 07:06
白左:试试
$("contentAreaContextMenu").hidePopup();
改成
setTimeout(x=>$("contentAreaContextMenu").hidePopup(),50)
回到原帖
谢谢,刚才试了一下,没有彻底解决,菜单虽说不像以前那样出来一直显示,但现在是闪退,看着实在不美观
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
3楼#
发布于:2017-04-22 07:11
刚才我把,50给去掉了。就好了。我也不知道,50是什么意思。就试验了一下,就看不到闪退了。不过偶尔还会出现但次数很少。不知道什么原因。
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
4楼#
发布于:2017-04-22 07:15
顺便问一下,有没有自动随机更换代理服务器的软件。有很多国内免费代理列表。想让这个软件自动随机切换列表里的ip,找了几年了也没找到。最好是能够自动采集并且验证可用的ip代理,然后在由代理软件在指定时间内随机自动变换代理。
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
5楼#
发布于:2017-04-23 14:22
白左:试试
$("contentAreaContextMenu").hidePopup();
改成
setTimeout(x=>$("contentAreaContextMenu").hidePopup(),50)
回到原帖
那个50应该是菜单显示的时间。我现在改成0了,为何还会闪一下。有什么办法不闪那一下吗
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
6楼#
发布于:2017-04-28 18:27
真的没人来解决这个闪退问题吗
netweb
小狐狸
小狐狸
  • UID47439
  • 注册日期2014-10-01
  • 最后登录2021-08-28
  • 发帖数26
  • 经验27枚
  • 威望0点
  • 贡献值10点
  • 好评度6点
  • 社区居民
7楼#
发布于:2017-04-30 15:50
ff53
似乎在新版本的HTML规范里click事件preventDefault不能影响右键菜单, 必须对oncontextmenu事件preventDefault。
这里看到的http://bbs.kafan.cn/thread-2084764-1-1.html
我不会js,大概这样就行了,我用的52,没测试
// ==UserScript==
// @name            RightClickPlus.uc.js
// @description        右键新标签页打开链接,在链接上 Ctrl + 右键打开菜单
// ==/UserScript==
(function() {
    var x = true;  // false: 前台 | true: 后台

    function $(id) document.getElementById(id);

    gBrowser.mPanelContainer.addEventListener('click', function(e) {
        if (e.button == 2 && !e.ctrlKey) {
            var onlink = XULBrowserWindow.overLink;
            var href = e.target.href || e.target.parentNode.href || onlink;
            if (href && onlink !== "") {
                if (/^javascript:/i.test(onlink.toString())) return;
                //e.preventDefault();
                e.stopPropagation();
                $("contentAreaContextMenu").hidePopup();
                gBrowser.moveTabTo(gBrowser.loadOneTab(href, {inBackground: x}), gBrowser.mCurrentTab._tPos + 1);
            }
        }
    }, false);
    gBrowser.mPanelContainer.addEventListener('contextmenu', function(e) {
        e.preventDefault();
    }, false);
})();
shiming
火狐狸
火狐狸
  • UID45807
  • 注册日期2014-05-03
  • 最后登录2020-05-28
  • 发帖数221
  • 经验263枚
  • 威望0点
  • 贡献值156点
  • 好评度13点
  • 社区居民
  • 忠实会员
8楼#
发布于:2017-05-01 00:42
warb:真的没人来解决这个闪退问题吗回到原帖
自从用了windows 10 ltsb之后,我已经体会到了其好处。为什么不使用更加稳定的esr版本呢?
注册好麻烦哦
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
9楼#
发布于:2017-05-01 12:46
netweb:ff53
似乎在新版本的HTML规范里click事件preventDefault不能影响右键菜单, 必须对oncontextmenu事件preventDefault。
这里看到的http://bbs.kafan.cn/thread-20...
回到原帖
试了一下。右键点击链接是正常,但在非链接出点击右键无法出现菜单。按住ctrl点击右键也无法出现菜单
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
10楼#
发布于:2017-05-01 12:49
netweb:ff53
似乎在新版本的HTML规范里click事件preventDefault不能影响右键菜单, 必须对oncontextmenu事件preventDefault。
这里看到的http://bbs.kafan.cn/thread-20...
回到原帖
 试了一下。右键点击链接是正常,但在非链接出点击右键无法出现菜单。按住ctrl点击右键无论是在非链接出还是在链接出都无法出现右键菜单。
netweb
小狐狸
小狐狸
  • UID47439
  • 注册日期2014-10-01
  • 最后登录2021-08-28
  • 发帖数26
  • 经验27枚
  • 威望0点
  • 贡献值10点
  • 好评度6点
  • 社区居民
11楼#
发布于:2017-05-01 16:28
warb:试了一下。右键点击链接是正常,但在非链接出点击右键无法出现菜单。按住ctrl点击右键无论是在非链接出还是在链接出都无法出现右键菜单。回到原帖
改好了,应该没有问题了。再有也不会改了
// ==UserScript==
// @name            RightClickPlus.uc.js
// @description        右键新标签页打开链接,在链接上 Ctrl + 右键打开菜单
// ==/UserScript==
(function() {
    var x = true;  // false: 前台 | true: 后台
    
    function $(id) document.getElementById(id);

    gBrowser.mPanelContainer.addEventListener('click', function(e) {
        if (e.button == 2 && !e.ctrlKey) {
            var onlink = XULBrowserWindow.overLink;
            var href = e.target.href || e.target.parentNode.href || onlink;  
            if (href && onlink !== "") {
                if (/^javascript:/i.test(onlink.toString())) return;
                //e.preventDefault();
                e.stopPropagation();
                $("contentAreaContextMenu").hidePopup();
                gBrowser.moveTabTo(gBrowser.loadOneTab(href, {inBackground: x}), gBrowser.mCurrentTab._tPos + 1);
            }
        }
    }, false);
    gBrowser.mPanelContainer.addEventListener('contextmenu', function(e) {
        if (e.button == 2 && !e.ctrlKey) {
            var onlink = XULBrowserWindow.overLink;
            var href = e.target.href || e.target.parentNode.href || onlink;  
            if (href && onlink !== "") {
                if (/^javascript:/i.test(onlink.toString())) return;
                e.preventDefault();
                //e.stopPropagation();
            }
        }
    }, false);
})();
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
12楼#
发布于:2017-05-01 16:50
netweb:改好了,应该没有问题了。再有也不会改了
// ==UserScript==
// @name            RightClickPlus.uc.js
// @description        右键新标签页打开链接,在链接上...
回到原帖
谢谢,一会我试试
warb
非常火狐
非常火狐
  • UID51578
  • 注册日期2015-10-28
  • 最后登录2019-05-04
  • 发帖数639
  • 经验666枚
  • 威望0点
  • 贡献值816点
  • 好评度27点
13楼#
发布于:2017-05-02 07:37
warb:谢谢,一会我试试回到原帖
谢谢,很好用。
游客

返回顶部