在页面上查找字符串并单击旁边的链接的功能?

时间:2013-03-13 14:49:25

标签: javascript

我想知道是否可以设计一个脚本来搜索网页中的某个文本字符串,然后直接点击元素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中的链接。

2 个答案:

答案 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')