在新标签页中打开ajax链接

use*_*634 8 ajax jquery

我正在构建一个面向ajax的站点,我的所有链接都是这样的:

<div class="link">press me </div>

<div id="contents" ></div>
<script>
    $('div[class="link"]').click(function() {
        $.ajax({                                      
            url: 'contents/get_products.php',
            type: "GET",        
            data: 
            dataType: 'json',               
            success: 
                function(data){ 
                  $.each(data, function(i){
                      $('#contents').append('<div class="cat_list_item">something</div>'); 
                  });
            }
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

如何在新选项卡中打开这些链接(在中间单击或右键单击"新选项卡中的打开链接").

我知道浏览器只打开原始页面(url)而没有从Ajax调用中检索到的数据,但是如何让它在新选项卡中加载数据.我一直在寻找互联网,到目前为止我还没有找到解决方案.

nij*_*sen 3

不,至少用你的方法做到这一点几乎是不可能的。如果您想使用浏览器本机提供的新选项卡功能,则不能将divs 与附加的 Javascript 处理程序一起用于链接。

您可以做什么:使用window.openwith_blank作为目标,但是您会遇到弹出窗口阻止程序的问题,这可能不是您想要的。

您还可以使用<a class="link" href="my-ajax-view/?some=parameters">press me</a>并编写一个页面来显示您正在寻找的内容(这对我来说似乎是最好的解决方案,因为这样您还可以为 5% 关闭 Javascript 的用户提供功能)。单击该链接时,您仍然可以使用 JQuery 进行一些奇特的 AJAX 加载,但如果有人在新选项卡中打开该链接,您将重定向到收集信息的页面。您的新点击处理程序将如下所示:

$('a.link').click(function(event) {
    event.preventDefault();
    // Your ajax request here
}
Run Code Online (Sandbox Code Playgroud)