2012-06-14 32 views
11

目标“_blank”我有一个新的选项卡中打开一个URL一个小javascript函数:window.open与铬

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

这始终工作时调用客户端通过点击一个按钮,即使在铬。 但在Chrome不会使用

ScriptManager.RegisterClientScriptBlock() 

在Firefox和IE中打开一个新标签的URL工作时,它是从服务器端(!)调用,而Chrome打开网址在新窗口。什么可能是迫使Chrome浏览器在新标签中打开它的解决方法?

+3

我认为这是Chrome特定的配置。你不能通过脚本来控制它。 – rcdmk

回答

12

这是一个镶嵌在铬。您无法控制浏览器如何解释目标_blank

+2

但是,如果Chrome在单击按钮时从客户端调用该功能,为什么Chrome会在新选项卡中打开该URL?它通过使用服务器端方法调用时不起作用。 –

+1

可能是弹出窗口阻止。许多浏览器将禁止新的窗口被打开,但会允许新的窗口作为鼠标点击事件的最终结果产生。 –

+0

浏览器具有内部变量,其指示关于呼叫如何以及在哪里发起的信息(呼叫栈的顶部),例如浏览器将决定根据是否来自特定事件(加载事件vs点击事件与异步回调)来调用在单独窗口或新选项卡中打开(或阻止)弹出窗口。 –

0

你不能这样做,因为你不能在Chrome中打开其窗口

11

的方式控制“_blank”不能保证是一个新的标签或窗口。它以不同的浏览器实现。

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

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

+1

+1这应该是正确的答案。 – mjsarfatti

0

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

如果您想知道不一致的行为,可能是弹出窗口阻止。许多浏览器将禁止新的窗口被打开,但会允许新的窗口作为鼠标点击事件的最终结果产生。

0
window.open(skey, "_blank", "toolbar=1, scrollbars=1, resizable=1, width=" + 1015 + ", height=" + 800); 
+0

这不回答这个问题。 –