我正在构建一个面向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
- }