如何使用JavaScript或jQuery将纯文本站点捕获到变量中?

时间:2012-08-24 14:25:35

标签: javascript jquery

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

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

======================================================================
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函数。
  3. 提前致谢!

2 个答案:

答案 0 :(得分: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的字符串在正则表达式中使用,因此在将字符串传递给函数之前,应该转义特殊的正则表达式字符,如$^(或使函数清理自己的输入)。这已在How do you pass a variable to a Regular Expression JavaScript?中解决:

str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");

答案 1 :(得分:0)

var content = '';

    $.get('ajax/test.html', function(data) {
        content = data;
    });

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