window.open with target “_blank” in Chrome
我有一个小的javascript函数,可以在新标签页中打开一个网址:
1 2 3 4 | function RedirectToPage(status) { var url = 'ObjectEditor.aspx?Status=' + status; window.open(url , '_blank'); } |
当通过单击按钮调用客户端(即使在Chrome浏览器中)时,此方法始终有效。
但是在Chrome中,当使用
从服务器端(!)调用它时,它将无法正常工作
1 | ScriptManager.RegisterClientScriptBlock() |
在Firefox和IE中,它会在新标签页中打开网址,而Chrome会在新窗口中打开网址。强制Chrome在新标签页中打开它的解决方法是什么?
这是Chrome的设置。您无法控制浏览器如何解释目标
" _ blank"不保证是新的标签页或窗口。每个浏览器的实现方式有所不同。
但是,您可以将任何东西放入目标。我通常只说" _tab",我知道的每个浏览器都只是在一个新的标签中打开它。
请注意,这意味着它是一个命名目标,因此,如果您尝试打开2个URL,它们将使用相同的标签。
1 | window.open(skey,"_blank","toolbar=1, scrollbars=1, resizable=1, width=" + 1015 +", height=" + 800); |
如丹尼斯所说,您无法控制浏览器如何选择处理target = _blank。
如果您想知道不一致的行为,可能是弹出窗口阻止。许多浏览器会禁止新窗口以任何方式打开,但会由于鼠标单击事件的最终结果而产生新窗口。
您无法执行此操作,因为您无法控制Chrome打开其窗口的方式