向一个 chrome 扩展添加一个用按钮关闭当前页面的功能,实现很简单,就是在 contentscript.js 里操作 DOM 给 body 追加了一个按钮,然后点击按钮的时候执行window.close()
。
这个 api 是网上搜的,为了验证一下是否可行还专门用任意几个页面的开发者工具的控制台直接执行了一下,发现是可以关闭的,于是才写到了扩展中去验证,发现也没有问题。
欢天喜地的准备提交,想着用 linux 下的 chrome 也验证一下(上面是在 windows10 去修改的),结果发现提示Scripts may close only the windows that were opened by it.
并且无法关闭页面??试了控制台和脚本都无效。赶紧检查了一下 chrome 版本,都是最新版 88.0.4324.182(正式版本)(64 位)。不甘心又找了另一台 Windows10 (和用来修改的 Windows10 一样都是 64 位专业版 1909 ),发现同样版本的 chrome (还是 88.0.4324.182 )居然也不行。我凌乱了。。。
然后去查 api,发现理论上只能给新创建的 window 用什么的,无法解释现在的现象。查了两天一直没有结果。有人知道这个到底是怎么回事吗?或者你们也试一试然后反馈看看是否不同的电脑 window.close()会表现不一致?
刚才三个 chrome 都更新到 88.0.4324.190 了,还有这个问题。能生效的电脑一直可以生效,无效的又一直无效。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.