0

我需要将网站的所有内容保存在一个变量中,以便搜索特定的字符串。

这是内容外观的示例,它实际上是一个纯文本日志。

======================================================================
BEGIN_TEXT

APPLEYARD IAN 23761347 BA 2 Airport Data:
Code = JFK
Name = JFK/John F Kennedy International
City = New York
State = NY
Airport Data:
Code = LCY
Name = Lcy/London City Airport            '
City = London
State = England
sysTime:XXXXXXXXX0000 year:2012 month:7 day:16 hour:7 min:10 pm,END_TEXT

======================================================================

----(1341920977.93286)
                           2012/07/10 12:03:22.582
MAP UNAVAIL-AIRPORT CHECK IN ONLY *
>

======================================================================

----(1341920977.93286)
                           2012/07/10 12:03:23.202
I

======================================================================

----(1341920977.93286)
                           2012/07/10 12:03:23.337
IGND 
>

======================================================================

----(1341920977.93286)
                           2012/07/10 12:03:23.337
9V/BA2R16AUGJFKLCY

======================================================================

这是我最初的想法:

var content = document.body.textContent; //But there is no body!
var pos = content.search("UNAVAIL-AIRPORT"); // Just an example to search for

所以我的问题是:

  1. 我如何捕获该内容?
  2. 获得字符串的位置后,如何滚动并突出显示匹配项?我基本上想重新创建 CTRL + F 函数。

提前致谢!

4

2 回答 2

1

当您在浏览器中将文本文件加载为网页时,您的浏览器会在文本周围创建一个基本的 HTML 脚手架:

<html>
    <head></head>
    <body>
        <pre>[your entire text document here]</pre>
    </body>
</html>

如果您查看页面的源代码,这不会显示,但如果您访问页面(例如使用 Firebug 或 Chrome 开发工具),它是可见的。

操作和设置文本样式的一种简单方法是抓取块innerHTML的 并在其中<pre>添加标签:

function highlightText(regexStr) {
    var preTag = document.getElementsByTagName("pre")[0];
    preTag.innerHTML = preTag.innerHTML
                         .replace(new RegExp("("+regexStr+")", "g"),
                                  "<span style='background-color:orange;'>$1</span>");
}

highlighText("some regex phrase to highlight");

在 中添加您喜欢的任何样式<span>以实现所需的突出显示效果。

请注意,您传入的字符串highlightText在正则表达式中使用,因此您应该在将字符串传递给函数之前转义特殊的正则表达式字符,例如$and ^(或让函数清理自己的输入)。这已在如何将变量传递给正则表达式 JavaScript?

str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
于 2012-08-24T18:12:01.343 回答
0
变量内容 = '';

    $.get('ajax/test.html', function(data) {
        内容=数据;
    });

2-) $(content).find() 您正在搜索的内容并添加一个类以突出显示

于 2012-08-24T14:30:38.070 回答