• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] HTML kommentarzeichen mit Javascript entfernen?

Computerfreak

New member
Hallo,

ich arbeite gerade an einem Chrome Plugin für meine Webseite und komme bei einem eigentlich einfachem Problem nicht weiter.

Mein PLugin ruft eine html Seite von meinem Server ab. Der zurückgelieferte Text enthält neben normalen HTML Elementen auch einige HTML Elemente, die innerhalb eines HTML Kommentars stehen:
z.B.:
HTML:
<div class="hidden_elem">
  test4 <!-- <div class="xxxx">sdfdfsdfsdf</div> -->
</div>

da querySelectorAll nur das 1. div Element findet und das im Kommentar nicht, war jetzt meine Idee, das ich einfach die strings "<!--" und "-->" vorher im Script entferne. Eigentlich dachte ich, das das recht einfach wäre mit:
Code:
var request = new XMLHttpRequest;
    request.open("GET", "https://www.mypage.com/test.html", true);
    request.onload = function () {
        if (request.status == 200) {
            text = request.response.replace("<!--", "");
            text = text.replace("-->", "");
            ParsePage(text);
        }
    };
Aber wenn ich in ParsePage mir den übergebenen Text ansehe, dann sehe ich das die Kommentarzeichen noch drin sind. Woran liegt das? Wie kann ich das ändern? Mit meinem Code hätte ich erwartet das mein Text in ParsePage so aussieht:
HTML:
<div class="hidden_elem">
  test4  <div class="xxxx">sdfdfsdfsdf</div>
</div>
 
Ich würde jetzt darauf tippen, dass in dem HTML, das du geliefert bekommst, einfach mehr als ein HTML-Kommentar enthalten ist. STRING.replace() arbeitet in JS etwas anders als in anderen Sprachen. Nur wenn man eine RegExp mit dem g-Flag als ersten Parameter übergibt, werden auch wirklich alle Funde ersetzt. Mit einem String als Parameter wird nur das erste Vorkommen ersetzt.

Code:
alert("hallo".replace("l", ""));

PS: Ich gehe mal davon aus, dass du nachher das HTML irgendwo einfügst. Du könntest an dieser Stelle das DOM auch einfach nach Kommentaren durchiterieren. Ist jetzt weniger schwierig als es klingt und eine gute Übung...
 
Zurück
Oben