react 选项卡插件_如何关闭ReactJS中的当前浏览器选项卡?

普通的javascript不能随意关闭windows。这是不久前引入的一种安全功能,用于阻止各种恶意攻击和骚扰。

这个

close()

方法,如果满足以下所有条件,则应关闭浏览上下文

一个

:

相应的浏览上下文

一个

脚本可关闭

.

现有脚本的浏览上下文熟悉浏览上下文

一个

.

允许现有脚本的浏览上下文导航浏览上下文

一个

.

浏览上下文是

脚本可关闭

如果它是辅助浏览上下文

是由脚本创建的

(与用户的操作相反),或者是会话历史记录只包含一个文档的浏览上下文。

这意味着,除了一个小小的例外,

不允许javascript关闭不是由同一javascript打开的窗口。

仅允许对使用

window.open

方法。

如果你想用

window.close

从Greasemonkey/Tampermonkey/userscript可以得到:

火狐:

错误消息

Scripts may not close windows that were not opened by script.

"

铬:

只是默默地失败。

长期解决方案:

最好的办法是

改用Chrome扩展和/或Firefox插件。

它们可以可靠地关闭当前窗口。

但是,由于

窗口关闭

,对于Greasemonkey/Tampermonkey脚本来说要少得多;Greasemonkey和Tampermonkey可以在其API中合理地提供此功能(基本上为您打包扩展工作)。

考虑提出功能请求。

繁琐的工作区:

目前

易受“自我重定向”攻击。所以像这样的代码通常是有效的:

open(location, '_self').close();

国际海事组织(IMO)称,这是一种小车行为,目前(截至2015年4月左右)大多被阻止。它仍然可以工作

注入

代码

只有

如果选项卡是新打开的并且在浏览历史记录中没有页面。所以它只在很小的情况下才有用。

然而,

Chrome(v43&v44)和Tampermonkey(v3.11或更高版本)上仍有一个变体

. 使用显式

@grant

平淡的

窗口。关闭()

. 如:

// ==UserScript==

// @name window.close demo

// @include http://YOUR_SERVER.COM/YOUR_PATH/*

// @grant GM_addStyle

// ==/UserScript==

setTimeout (window.close, 5000);

多亏了

zanetu

为了更新。请注意,如果只有一个选项卡处于打开状态,则此操作将不起作用。它只关闭其他选项卡。

火狐

是安全的。所以,唯一的javascript方法就是破坏安全设置,一次一个浏览器。

你可以敞开心扉

about:config

并设置

allow_scripts_to_close_windows

true

.

如果你的剧本是供个人使用的,那就去做吧。如果你要求其他人打开这个设置,他们会很聪明,也有理由,带着偏见拒绝。

目前还没有与Chrome相同的设置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值