Tampermonkey Javascript 使用 window.close() 关闭当前 tab 页

文章目录

    一个自动化操作的需求,在新的 tab 页完成任务之后,使用 Tampermonkey 关闭这个 tab 页。

    在当前最新版 Chrome 版本 70.0.3538.102(正式版本) (64 位)中测试

    window.close()
    VM750:1 Scripts may close only the windows that were opened by it.
    

    也就说,window.close() 只能关闭由 js 打开的窗口。如果这个窗口不是由 js 打开的,那就没有权限关闭。

    function closeTab(){
        window.open('', '_self', '');
        window.close();
    } 
    

    Firefox 可以通过更改默认配置来获得关闭 tab 的权限

    https://stackoverflow.com/questions/330337/how-do-i-close-a-firefox-tab-from-a-greasemonkey-script

    步骤是:
    1. 下载最新版本的 Firefox 63.0.3 (64-bit)
    1. 地址栏输入 about:config
    1. 搜索 dom.allow_scripts_to_close_windows
    1. 设置为 true

    现在就可以通过如下代码来关闭 tab 了

    function closeTab(){
        window.open('', '_self', '');
        window.close();
    } 
    

    在 console 中直接输入 window.close(); 即可确认是否生效。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式