我正在构建一个面向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>
如何在新选项卡中打开这些链接(在中间单击或右键单击“新选项卡中的打开链接”).
我知道浏览器只打开原始页面(url)而没有从Ajax调用中检索到的数据,但是如何让它在新选项卡中加载数据.
我一直在寻找互联网,到目前为止我还没有找到解决方案.
解决方法
不,至少使用你的方法做到这一点几乎是不可能的.如果要使用浏览器本机提供的新选项卡功能,则不能将带有Javascript处理程序的div用于链接.
你可以做什么:使用带有_blank的window.open作为目标,但是你会遇到弹出窗口拦截器的问题,这可能不是你想要的.
你也可以使用< 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 }