代码之家  ›  专栏  ›  技术社区  ›  Fire Lancer

在允许在新的选项卡/窗口中打开页面项的同时使用Ajax

  •  0
  • Fire Lancer  · 技术社区  · 14 年前

    我正在考虑使用Ajax来允许在不重新加载整个网页的情况下重新加载部分网页中的某些内容(例如,关于单个项目的概述、评论、规范等页面)。

    但问题是,我仍然希望允许用户在新的选项卡或窗口中打开这些项目(使用其Web浏览器的常规系统,如右键单击链接并选择“在新选项卡中打开链接”),而不是只左键单击链接)。

    是否可以这样做,或者在这种情况下重新加载整个页面只是一般的最佳实践?

    2 回复  |  直到 13 年前
        1
  •  1
  •   Jani Hartikainen    14 年前

    这是非常可行的。您只需要在链接中提供一个href和一个onclick。

    如果用户没有JS,或者如果用户决定以特殊方式打开链接(新选项卡等),则会激活HREF。

    onclick将在链接的“正常”单击时激活。然后,您可以取消默认操作(通过返回false或使用您的JS-Lib选项的方式来执行),并执行Ajax操作。

        2
  •  0
  •   Parris    14 年前

    它是可能的,事实上它甚至可以设置一个定时器来定期更新页面的一部分。如果您使用的是jquery,它会是这样的:

    setInterval(function() {
             $('#your-div').load('your-server-side-request.php');
             }, 3000);
    

    当然,您可以简单地绑定到一个链接,并在刷新时使用.load()。

    或者,您甚至可以使用普通的javascript来实现这一点,并本质上使用我上面的脚本作为伪代码。