【发布时间】:2009-07-06 12:21:03
【问题描述】:
Google Chrome 似乎阻止了我通过 jQuery 创建的弹出窗口。经过一番调查,在 ajax 调用的成功事件中调用 window.open 似乎是一个问题。有没有解决的办法?我的 jQuery ajax 调用返回要打开的 URL。所以我有点卡住了。
如果我将 window.open 放在 ajax 调用之外,它会起作用;但是,在内部(即在成功事件中)它被阻止了。我认为这与 CONTEXT 有关,但我不确定。
这是我所拥有的:
window.open("https://www.myurl.com"); // OUTSIDE OF AJAX - no problems
// with popup
$.ajax({
type: "POST",
url: "MyService.aspx/ConstructUrl",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// Normally loads msg.d which is the url returned from service
// static url below is for testing
window.open("https://www.myurl.com"); // THIS IS BLOCKED
},
error: function(msg) {
// alert(error);
}
});
【问题讨论】: