浏览器插件,有没有浏览页面到100%自动关闭当前页的?

类似自动翻页插件,不过是翻到下一个标签页去。
省的还得点关闭。

…………
或者不用关闭当前页,把下一个标签页的内容自动续过来的也不错

1 Like

这个问题似乎是在于解决标签越存越多的情况么?如果说进度100%就自动关闭的话,需要保留的网页如何处理?不同标签的不同网站如何进行排序?如果是只关闭的话我会在看完的时候左手顺手就点击ctrl+w关闭标签了,没多少额外的操作成本。
如果是标签过多的问题我的解决方案是使用标签对比插件,自动关闭相同域名标签,保证标签数量可控比如

1 Like

不是这个场景。
我的场景是,比如,批量打开了同一网站,比如小众软件的三十个页面(页码不连续)。

然后需要看完一个关一个,太麻烦。
希望虽然页码不连续的情况下,还能像安了自动翻页插件那种效果一样。

自动关闭的没有,有阅读进度显示,并提供一个大号关闭按钮的倒是找到个 :rofl:大概是不满足你的要求的

1 Like

永页机页面推荐的infyscroll就可以实现吧,只要输入url就能拼接

ctrl+w都懒得按???????

安卓大平板用的,yandex浏览器。
每个标签的关闭按钮在最上面,特别小,还会随页面自动隐藏。。。
关起来特别费劲。

键盘快捷键更是用不上。

安卓平板的话考虑手势操作?或者我提供的那个插件,那个进度条可以当作关闭按钮用,大小也适合触屏操作

那个插件很棒,我试了,就是按钮位置太高了,总在最顶部,要是在底部就完美了

实测下来手势操作效率非常低,不知道为什么指头划着还没鼠标准确

我是指的系统级返回等的手势操作,如果不是强制要求上插件的安卓浏览器,我觉得soul 这个韩国的安卓浏览器可能能满足你的要求,内置手势功能,用于响应指定的功能,目前是我的主力安卓浏览器

1 Like

试用了下soul浏览器,别的都好,但这浏览器貌似不会自己释放掉已经关闭的标签的内存,越用越卡,每用一阵卡死一下,不得不强关重启软件。

然而重启后不会记住之前浏览的页面,对我来说根本没法用。。。

可以设置标签数量,记住页面可调 :rofl: 或者关闭 返回不刷新功能 soul 本身自定义比较强

1 Like
// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       Hoothin
// @match        https://*/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        window.close
// ==/UserScript==

(function() {
    'use strict';
    function pullupHandler(){
        window.close();
        //window.confirm('关闭当前标签页?')&&window.close();
    }

    function getScrollTop(){
        var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;
        if(document.body){
            bodyScrollTop = document.body.scrollTop;
        }
        if(document.documentElement){
            documentScrollTop = document.documentElement.scrollTop;
        }
        scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
        return scrollTop;
    }

    function getScrollHeight(){
        var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0;
        if(document.body){
            bodyScrollHeight = document.body.scrollHeight;
        }
        if(document.documentElement){
            documentScrollHeight = document.documentElement.scrollHeight;
        }
        scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;
        return scrollHeight;
    }

    function getWindowHeight(){
        var windowHeight = 0;
        if(document.compatMode == "CSS1Compat"){
            windowHeight = document.documentElement.clientHeight;
        }else{
            windowHeight = document.body.clientHeight;
        }
        return windowHeight;
    }

    var pStart = { x: 0, y: 0 };
    var pStop = { x: 0, y: 0 };

    function swipeStart(e) {
        if (typeof e.targetTouches !== "undefined") {
            var touch = e.targetTouches[0];
            pStart.x = touch.screenX;
            pStart.y = touch.screenY;
        } else {
            pStart.x = e.screenX;
            pStart.y = e.screenY;
        }
    }

    function swipeEnd(e) {
        if (typeof e.changedTouches !== "undefined") {
            var touch = e.changedTouches[0];
            pStop.x = touch.screenX;
            pStop.y = touch.screenY;
        } else {
            pStop.x = e.screenX;
            pStop.y = e.screenY;
        }

        swipeCheck();
    }

    function swipeCheck() {
        var changeY = pStart.y - pStop.y;
        var changeX = pStart.x - pStop.x;
        if(getScrollTop() + getWindowHeight() >= getScrollHeight() - 100){
            if (isPullUp(changeY, changeX)) {
                try {
                    pullupHandler();
                } catch (e) {

                }
            }
        }
    }

    function isPullUp(dY, dX) {
        return (
            dY > 0 &&
            ((Math.abs(dX) <= 100 && Math.abs(dY) >= 300) ||
             (Math.abs(dX) / Math.abs(dY) <= 0.3 && dY >= 60))
        );
    }

    document.addEventListener(
        "touchstart",
        function (e) {
            swipeStart(e);
        },
        false
    );

    document.addEventListener(
        "touchend",
        function (e) {
            swipeEnd(e);
        },
        false
    );


})();

随手写了个,上滑到底部时自动关闭,可以自己改成弹出关闭提示框或者其他的

3 Likes

我在yandex浏览器(安卓)不能用,不知道哪里有问题

大概权限不够吧,试试改成window.open一个空字符串再关闭。我是在安卓kiwi上测试的

感谢大佬,俺不懂(=_=)

不着急,大佬啥时候闲了随便看一看哈。
想了想感觉自动关闭有点容易误关网页。

想借地问一问理论上有没有可能做到翻页到100%的时候自动把右侧一个标签页的内容续过来,然后自动把右侧那一个标签关掉,就跟那些自动翻页插件一样。

不大现实吧,虽然写个扩展可以做到读取下一个标签页,但是两个页面不一定同域啊,样式和页内js极有可能相互干扰,那就只能通过iframe引入。

这样假如页面内有个top==self的判断,会导致当前页面跳转。

即使忽略这些,iframe引入后高度也不好判断,因为页内高度很可能会变化,而iframe的高度是定义在父页面内的。要加监听器调整父页面内iframe的高度又要考虑跨域的问题。

1 Like

上面那段代码可以自己调整参数的,目前写的是处于底部并且上滑大于300像素才关闭,类似于下拉刷新,不大可能误关的。

1 Like