2013-03-13 34 views
0

我想知道是否有可能設計一個腳本,它將搜索特定字符串的文本的網頁,然後直接在其右側單擊元素ID中的鏈接。函數在頁面上查找字符串並單擊它旁邊的鏈接?

這是可能的。也許JavaScript,PHP?

請大家幫忙,謝謝大家。 :)

@Four_lo

感謝您的回覆。我很抱歉,也許是因爲我對javascript很新,但我無法真正理解你所建議的頁面上的任何內容。

我放在一起的一些JavaScript,它將搜索頁面中的元素ID並單擊其中的鏈接。

<html> 
<head> 
<script type="text/javascript"> 
function init(){ 
    var linkPage = document.getElementById('linkid').href; 
    window.location.href = linkPage; 
} 
onload=init; 
</script> 
</head> 
<body> 

<a href="http://www.barnsley-chronicle.co.uk" id="linkid">GO HERE</a> 
<a href="test.html" id="thisone">I WANT TO CLICK HERE!</a> 

</body> 
</html> 

所以基本上,我需要搜索頁面GO HERE。然後,一旦找到了,我需要點擊id =「thisone」中的鏈接,如果有意義的話。

上述代碼起作用,並單擊指定的id內的鏈接。但是,我想在該ID中找到某些文本,然後轉到下一個ID,然後單擊該ID中的鏈接。

回答

0

稍微複雜得多,它需要:

function performAfterLinkWithText(text, perform) { 
    // get all the links 
    var $links = document.getElementsByTagName('a'); 

    // scan them for your text 
    for(var i in $links) { 
     if($links[i].innerHTML === text) { 
      var $next = $links[i] // ready for loop 
       , terminateAfter = 20 // don't repeat forever 
       ; 
      // keep checking the adjacent element 
      // because newlines show up as #text 
      do { 
       $next = $next.nextSibling; 
      } while(!$next.href && terminateAfter-- > 0); 

      // do your thing 
      perform($next.href, $next); // window.location.href = $next.href; 
     } 
    } 
} 

// test -- performAfterLinkWithText('GO HERE', function(url, link) { console.log(url, link); }); 

performAfterLinkWithText('GO HERE', function(url) { window.location.href = $next.href; }); 

或者使用jQuery:

window.location.href = $('a:contains("GO HERE")').next().attr('href') 
相關問題