在 Chrome 中使用目标“_blank”打开 window.open

Posted

技术标签:

【中文标题】在 Chrome 中使用目标“_blank”打开 window.open【英文标题】:window.open with target "_blank" in Chrome 【发布时间】:2012-06-17 15:41:27 【问题描述】:

我有一个小的 javascript 函数,可以在新标签页中打开一个 url:

function RedirectToPage(status) 
   var url = 'ObjectEditor.aspx?Status=' + status;
   window.open(url , '_blank');

当通过单击按钮调用客户端时,这始终有效,即使在 chrome 中也是如此。 但是在 Chrome 中,当使用

从服务器端(!)调用它时它将不起作用
ScriptManager.RegisterClientScriptBlock()

在 Firefox 和 IE 中,它会在新选项卡中打开 url,但 chrome 会在新窗口中打开 url。有什么办法可以强制 Chrome 在新标签页中打开它?

【问题讨论】:

我认为这是 Chrome 特定的配置。你不能通过脚本来控制它。 【参考方案1】:

这是 chrome 中的设置。您无法控制浏览器如何解释目标_blank

【讨论】:

但是,如果单击按钮时从客户端调用该函数,为什么 Chrome 会在新选项卡中打开 url?它只是在使用服务器端方法调用时不起作用。 可能是弹窗拦截。许多浏览器会禁止在任何情况下打开新窗口,但会允许在鼠标单击事件的最终结果中生成新窗口。 浏览器具有内部变量,这些变量指示有关调用方式和位置(调用堆栈顶部)的信息,例如浏览器将根据调用是否源自特定事件(加载事件、点击事件和异步回调)来决定在单独的窗口或新选项卡中处理弹出窗口的打开(或阻止)。【参考方案2】:

"_blank" 不保证是新标签页或窗口。每个浏览器的实现方式不同。

但是,您可以将任何东西放入目标中。我通常只会说“_tab”,而我所知道的每个浏览器都会在新标签页中打开它。

请注意,这意味着它是一个命名目标,因此如果您尝试打开 2 个 URL,它们将使用相同的选项卡。

【讨论】:

【参考方案3】:
window.open(skey, "_blank", "toolbar=1, scrollbars=1, resizable=1, , comcopy">这不能回答问题。【参考方案4】: 
                

    
    

您不能这样做,因为您无法控制 Chrome 打开其窗口的方式

【讨论】:

【参考方案5】:

正如丹尼斯所说,您无法控制浏览器选择如何处理 target=_blank。

如果您想知道不一致的行为,可能是弹出窗口阻止。许多浏览器会禁止在任何情况下打开新窗口,但会允许在鼠标单击事件的最终结果中生成新窗口。

【讨论】:

以上是关于在 Chrome 中使用目标“_blank”打开 window.open的主要内容,如果未能解决你的问题,请参考以下文章

WKWebview 在 macOS 上的默认浏览器中打开目标 =“_blank”链接

chrome window.open(url '_blank') 打开新窗口

目标 =“_blank” 在 IOS 中不起作用

iOS14,WKWebView 无法打开带有 _blank 目标的链接

NextJs 上富文本棱镜的目标 _blank

在表单提交时获得对 _blank 目标窗口的引用