3

上記のようなリンクがいくつかあります

> <td><a href="http://Lucifase.com/pages/2000.php?refid=2000"
> target="_blank">2000</a><br></td> <td><a
> href="http://Lucifase.com/pages/3000.php?refid=3000"
> target="_blank">3000</a><br></td> <td><a
> href="http://Lucifase.com/pages/4000.php?refid=4000"
> target="_blank">4000</a><br></td> <td><a
> href="http://Lucifase.com/pages/5000.php?refid=5000"
> target="_blank">5000</a><br></td> <td><a
> href="http://Lucifase.com/pages/6000.php?refid=6000"
> target="_blank">6000</a><br></td>

そして、最初のステップで停止します。スクリプトトリガーでそれぞれを開くことができません。これが私がこれまでに持っているものです:

 setTimeout(function() {
    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("click", true, true, window,
                       0, 0, 0, 0, 0,
                       false, false, false, false,
                       0, null);
 var links = document.getElementsByTagName('a');
             if(links.href.search('refid') >= 0)

    links.dispatchEvent(evt);
 }, 1000);

しかし、それは機能しません。また、それらを新しいタブで1つずつ開く方法もわかりません。

4

2 に答える 2

3

一つ一つ とはどういう意味ですか? すべてのリンクを一度に「クリック」しても問題ないように見えますか?

hrefリンクの場合は、クリック イベントを送信するのではなく、リンクをたどるだけです。次のコードは、必要なタブだけを開く必要があります。

var linksToOpen = document.querySelectorAll ("td > a[href*='refid']");
for (var J = 0, numLinks = linksToOpen.length;  J < numLinks;  ++J) {
    window.open (linksToOpen[J].href, '_blank');
}


OP の明確化のための更新:
各リンクの間に遅延があるリンクを開くには、少し複雑です。このようなコードはそれを行います:

var linksToOpen = document.querySelectorAll ("td > a[href*='refid']");

//--- linksToOpen is a NodeList, we want an array of links...
var linksArray  = [];
for (var J = 0, numLinks = linksToOpen.length;  J < numLinks;  ++J) {
    linksArray.push (linksToOpen[J].href);
}

openLinksOnDelay (linksArray);

function openLinksOnDelay (linkArray) {
    //--- Pop the first link off the array...
    var linkToOpen  = linkArray.shift ();
    if (linkToOpen)
        window.open (linkToOpen, '_blank');

    //--- Open the next of the remaining links after a delay.
    if (linkArray.length) {
        setTimeout ( function() {
                openLinksOnDelay (linkArray);
            },
            1000    //--- 1 second.  Use 60000 for 1 minute.
        );
    }
}
于 2012-05-23T21:13:00.337 に答える
2

マウスをクリックする必要がありますか、それともこれでリンクを開くことができますか:

for(i=0;i<document.links.length;i++) {
  if(document.links[i].target != "_blank"){
     window.open(
       document.links[i].href,
       '_blank'
     );
  }
}
于 2012-05-23T07:21:28.283 に答える