【发布时间】:2013-02-11 22:32:53
【问题描述】:
我有以下代码行,当点击链接时使用 jQuery 调用:
alipayTransactionModalTrigger.click(function(e) {
e.preventDefault();
$.ajax({
url: "doSomething",
data: "p_locale=en-US",
success: function(dataOut){
if (dataOut == "hold") {
...do something...
} else {
//open a modal over parent window
alipayTransactionModal.dialog("open");
//also open new tab/window
var Payment = window.open("http://www.alipay.com", "Payment");
Payment;
Payment.focus();
}
}
});
return false;
});
ajax 调用基本上只是检查一些值。成功呼叫正在发生,这不是问题。 通过使用框架名称,我试图在多次单击链接时强制刷新新打开的窗口/选项卡。这适用于 IE 8、Chrome 和 Firefox - 用户可以多次单击链接,并且只会打开一个新窗口一次 - 后续点击只会重新加载该窗口。
但是,IE 9 不会发生这种情况 - IE 9 每次都会打开一个新窗口/选项卡。有什么方法可以在 IE 9 中强制执行此行为?或者甚至只是解释为什么在 IE 9 中发生这种情况会很好 - 它是用户级别的设置吗?据我所知,当我在window.open() 中使用框架名称时,IE9 只是不知道我在指向什么。
我应该提到的另一件事 - .focus() 并不总是将窗口集中在第二次/第三次/等点击(似乎取决于浏览器和浏览器设置) - 但我已经问过这个问题 here 只是包括它在这里以防万一。
谢谢
【问题讨论】:
-
另外,在变量中保留对窗口的引用:
var w = window.open(....); .... w.focus(); -
你是说这比我现在使用
.focus()更好吗?或者这应该解决我的问题?这似乎对是否在 IE 9 中打开新窗口没有影响。 -
我是说当第二次点击链接时,使用变量
w而不是打开一个新窗口。应该易于实现并且适用于所有浏览器。 -
你真的在使用“www.test.com”而不是正确的http://-prefixed url吗?新窗口是否与原窗口同源?
-
Christian - 我也尝试过,结果相同 EricLaw - 不,这不是我使用的实际网址 - 该网址是在其他地方生成的,所以为了简单起见,我只是插入了它
标签: javascript jquery internet-explorer-9 window.open