我想知道是否可以设计一个脚本来搜索网页中的某个文本字符串,然后直接点击元素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 :(得分:0)
有可能。它可能需要一些技巧,但这里你应该开始访问你需要的String。我相信正则表达式也是必须的。
http://dom.spec.whatwg.org/#processinginstruction http://domparsing.spec.whatwg.org/
答案 1 :(得分: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')