2010-03-09 79 views
1

我需要验证页面上的很多链接。而不是自己打开每个链接。这就是我所做的。无法在新标签中打开链接

使用firequery插件对页面进行jquerified。然后我在萤火虫中输入以下代码。

a = $('a'); 
$.each(a, function(i,val){ 
    $val = $(val); 
    $val.attr({target: '_blank'}); 
    $val.trigger('click'); 
}); 

即使我触发点击链接没有点击。为什么?

回答

0

trigger('click')只是不起作用。我最近遇到了同样的问题,并使用click()解决了这个问题。

+0

click()也不起作用 – 2010-03-09 21:10:50

+0

今天晚些时候我会拉代码。如果不是click(),那么它是OnClick();或一些小的变体。我很快就会发布。 – 2010-03-09 21:37:50

1

你可以这样做,好吧你会遇到弹出窗口阻止程序的问题,但如果这只是为了调试目的,你可以简单地禁用阻止程序,就是这样。

a = $('a'); 
$.each(a, function(i,val){ 
    window.open(val, '_blank'); 
}); 

下面是整个代码,它对我有用。其实我没有在服务器上测试它,只是检查了我的桌面上的HTML文件。 Firefox不允许弹出窗口显示,即使我说要显示弹出窗口,但IE浏览器可以选择允许弹出本地文件,它的工作原理,打开谷歌和雅虎的两个窗口。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    <head> 
     <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <script type="text/javascript" src="jquery-min.js"></script> 
    </head> 
    <body> 
     <a href="http://www.google.com">aa</a> 
     <a href="http://www.yahoo.com">bb</a> 
     <script> 
      $(document).ready(function() { 
        a = $('a'); 
        $.each(a, function(i,val){ 
        window.open(val, '_blank'); 
       }); 
      }); 
     </script> 
    </body> 
</html> 
+0

不确定为什么,但此解决方案无法正常工作。 – 2010-03-09 21:23:50

+0

@dorelal,我更新了我的答案。 – Ergec 2010-03-09 21:32:00

+0

应该是'window.open(val.attr('href'),'_blank')' – Felix 2010-03-09 21:35:22

0

此代码的工作对我来说:

$("a").each(function(i, val) { window.open(val.href); }); 

然而,Chrome会阻止这种代码,因为它试图一次打开一些20个弹出窗口,但我可以看到它确实尝试打开它们。

相关问题