Muszę zapisać wszystkie treści strony internetowej wewnątrz zmiennej, aby wyszukać określony ciąg.

Oto przykład wygląda na to, jak wygląda treść, to dosłownie zwykły dziennik tekstu.

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

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

To był mój oryginalny pomysł:

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

Więc moje pytania to:

  1. Jak uchwycić tę zawartość?
  2. Po uzyskaniu pozycji sznurka, jak mogę się tam przewinąć i podświetlić mecz? Zasadniczo chcę odtworzyć funkcję Ctrl + F.

Z góry dziękuję!

0
fedxc 24 sierpień 2012, 18:25

2 odpowiedzi

Najlepsza odpowiedź

Po załadowaniu pliku tekstowego jako strony internetowej w przeglądarce Twoja przeglądarka tworzy rusztowanie HTML Bare-Bones wokół tekstu:

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

Nie pojawia się to, jeśli przeglądasz źródło strony, ale jest widoczny, jeśli owadkujesz stronę (np. Z narzędziami Firebug lub Chrome Dev).

Prosty sposób na manipulowanie i styl tekstem jest uchwycenie innerHTML bloku {x1}} i dodaj znaczniki do niego:

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");

Dodaj dowolne style, które lubisz w <span>, aby osiągnąć pożądany efekt podświetlania.

Należy pamiętać, że ciąg, który przechodzą w highlightText jest używany w regexa, więc powinieneś uniknąć specjalnych znaków regexa, takich jak $ i ^ przed przekazaniem ciągu do funkcji (lub wykonania funkcji dezynfekować własne wejście). Zostało to rozwiązane w Jak Czy zdasz zmienną do wyrażenia regularnego JavaScript?:

str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
1
Community 23 maj 2017, 12:20
var content = '';

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

2-) $ (treść) .Find () to, czego szukasz i dodaj klasę do podświetlenia

0
Thiago Custodio 24 sierpień 2012, 14:30