按照href中的链接作为回调

时间:2011-10-07 16:23:48

标签: jquery html

我有一个链接<a href="/preview/3" target="_blank">Preview</a>。我想用jQuery来控制它:

    $('a').click(function(e) {
        savePage(previewPage);
    });

使用savePage函数,我保存了一些数据,然后通过执行window.open作为回调在新窗口中运行预览。我遇到了一个问题,因为浏览器会阻止我的窗口弹出。所以我只想在savePage完成后关注该链接。 我怎样才能使这个工作?

2 个答案:

答案 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。