我有一个链接<a href="/preview/3" target="_blank">Preview</a>
。我想用jQuery来控制它:
$('a').click(function(e) {
savePage(previewPage);
});
使用savePage
函数,我保存了一些数据,然后通过执行window.open
作为回调在新窗口中运行预览。我遇到了一个问题,因为浏览器会阻止我的窗口弹出。所以我只想在savePage
完成后关注该链接。
我怎样才能使这个工作?
答案 0 :(得分:3)
在savePage
内使用回调。在回调中,您将更改document.location
以使用链接href
的值。由于您将在savePage
内(最好在结尾处)回拨您的回调,因此在savePage
完成运行之前,浏览器不会转到新位置:因此您的代码将如下所示:< / p>
$('a').click(function(e) {
var link = this;
savePage(previewPage, function() {
document.location = link.href;
});
return false;
});
在savePage
内,请务必致电回拨:
function savePage(previewPage, callback) {
...
...
if(typeof callback !== "undefined") {
callback.call(null);
}
}
答案 1 :(得分:0)
通常,弹出窗口阻止程序只会阻止主机外部的弹出窗口。如果您尝试打开主机外的窗口,http://example.com&lt; - 您的主机&amp; http://www.anothersite.com/popup.php&lt; - 在您的主机之外。
如果是这种情况,那么我建议创建一个blank.htm文件,或类似的东西,并在其中放入iframe。