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

How to capture plain text site into a variable using JavaScript or jQuery?

本文关键字:网站 变量 文本 JavaScript 何使用 jQuery      更新时间:2023-09-26

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

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

======================================================================
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函数

提前感谢!

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

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

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

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

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中的字符串是在正则表达式中使用的,因此在将字符串传递到函数中(或使函数净化自己的输入)之前,应该转义特殊的正则表达式字符,如$^。如何将变量传递给正则表达式JavaScript?:

str.replace(/([.?*+^$[']''(){}|-])/g, "''$1");
var content='';$.get('ajax/test.html',函数(数据){content=数据;});

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