正在寻找一种使用javascript搜索html页面的方法

正在寻找一种使用javascript搜索html页面的方法,javascript,greasemonkey,Javascript,Greasemonkey,我想做的是为一个特定的字符串修改html页面,并在它之后读入一定数量的字符,并在锚标记中显示这些字符 我遇到的问题是如何在页面中搜索字符串,我找到的所有内容都与标签或id有关。我还希望它成为我个人使用的一个油腻的脚本 function createlinks(srchstart,srchend){ var page = document.getElementsByTagName('html')[0].innerHTML; page = page.substring(srchst

我想做的是为一个特定的字符串修改html页面,并在它之后读入一定数量的字符,并在锚标记中显示这些字符

我遇到的问题是如何在页面中搜索字符串,我找到的所有内容都与标签或id有关。我还希望它成为我个人使用的一个油腻的脚本

function createlinks(srchstart,srchend){
    var page = document.getElementsByTagName('html')[0].innerHTML;

    page = page.substring(srchstart,srchend);

    if (page.search("file','http:") != -1)
    {
        var begin = page.search("file','http:") + 7;
        var end = begin + 79;

        var link = page.substring(begin,end);
        document.body.innerHTML += '<a href="'+link+'">LINK</a> | ';

        createlinks(end+1,page.length);
    }       
};
函数createlinks(srchstart,srchend){
var page=document.getElementsByTagName('html')[0].innerHTML;
page=page.substring(srchstart,srchend);
if(page.search(“文件”,“http:”)!=-1)
{
var begin=page.search(“文件”,“http:”)+7;
var end=begin+79;
var link=page.substring(开始、结束);
document.body.innerHTML+=“|”;
创建链接(结束+1,页长);
}       
};

不幸的是,我找到了它在文档上再次循环的链接,所以在javascript中,整个文档都在DOM树中。您可以通过在DOM中递归搜索所需字符串来搜索字符串。这是向前迈进;我将输入伪代码,因为您需要考虑正在使用的库(如果有的话)

function search(node, string):
    if node.innerHTML contains string
       -- then you found it
    else
       for each child node child of node
           search(child,string)
       rof
    fi
辅助方向
  • 查找JavaScript正则表达式
  • 将正则表达式应用于页面的HTML(见下文)
  • 不同的正则表达式函数做不同的事情。您可以按照建议在文档中搜索字符串,但必须递归执行,因为您正在搜索的字符串可能会在多个位置列出


    获取页面中的文本
    • JavaScript:
      document.getElementsByTagName('html')[0]。innerHTML
    • jQuery:
      $('html').html()
    注:

  • IE可能要求元素大写(例如“HTML”)-我忘了
  • 此外,文档可能有新行字符
    \n
    ,可能需要删除,因为其中一个可能位于您要查找的字符串之间

  • “在锚定标签中呈现这些角色”是什么意思?您想创建一个指向它们的动态链接吗?这与Java有什么关系?也许你想去掉Java标记?在我告诉你如何在Java中这样做之前,你能确认这不仅仅是关于javascript吗?对不起,更多的javascript相关,我遇到的问题不是创建链接,而是找到用作动态链接的字符串,我想你可以调用它