从页面获取特定链接并在另一个选项卡/窗口中自动打开它们

时间:2013-06-13 08:18:23

标签: javascript jquery

我有一个包含多个表行的页面。每行包含几个链接。我正在尝试专门获取一些链接,并使用jquery在新窗口中打开它们。这是页面代码的样子:

<tr>
  <td colspan="3" width="122" valign="top" height="100">

    <font class="verds1">
      <a href="esignup.php?eSessID=12871419" 
        title="Breakfast-650944"><font color="#4F4F4F"><b>Breakfast-650944</b></font></a>
      <br><br style="line-height: 7px"></font>

    <font class="verds1">
      <a href="esignup.php?eSessID=12873457"
        title="Lunch-654335"><font color="#FF0000"><b>Lunch-654335</b></font></a>
      <br><br style="line-height: 7px"></font>
      <font class="verds1" color="#000000"><b>f-</b></font>

    <font class="verds1">
      <a href="esignup.php?eSessID=1287141"
        title="Dinner-651092"><font color="#4F4F4F"><b>Dinner-651092</b></font></a>
      <br><br style="line-height: 7px"></font>

    <font class="verds1">
      <a href="esignup.php?eSessID=1282131"
        title="Dinner-651222"><font color="#4F4F4F"><b>Dinner-651222</b></font></a>
      <br><br style="line-height: 7px"></font>

  </td>
<tr>

在上面的示例中,我希望仅定位标题中包含“Dinner”一词的链接,因为其后面的数字会有所不同。这里有两个符合此条件,但页面可能有5或6.我猜我必须将它们放在一个数组中。

我的问题是:

如何从标题中的“晚餐”链接中获取网址?

如何为每个网址打开新的标签/窗口?

我对如何定位特定链接有一个很好的想法,我一直在使用firebug进行测试。

var link = $('td').find('a').filter(':contains("Dinner")');
console.log(link);

然而在这一点上,它只返回给我“Dinner-651222”的实际文本,而不是网址。它只返回一个结果,而不是文件包含的多个结果。

对此的任何帮助将非常感谢。谢谢!

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

// get all a tag who have Dinner
var link = $('td').find('a').filter(':contains("Dinner")');
// get length of a
var linkLength = link.length;
// parse one by one and get URl from a tag
for (var i = 0; i < linkLength; i++) {
    // here is you all url
    var linkURL = $(link[i]).attr('href');
    // open each link in new window with custom settings
    var winOption = 'toolbar=no,location=no,directories=no,status=no, menubar=no,scrollbars=no,resizable=no,width=400,height=300';
    window.open('http://localhost/mysite/' + linkURL, 'MyWindow', winOption);
    // end
};

答案 1 :(得分:0)

关于第二个问题。据我所知,您无法使用Javascript打开新标签。您可以做的最好的事情是打开一个新窗口,取决于浏览器配置它将打开一个新标签,或者只是阻止它。

因此,要打开一个新窗口,您可以使用:

<script>
    window.open("http://www.google.com", "google"); 
</script>