/ / Extrahiere das src-Attribut aus dem Skript-Tag und analysiere es nach bestimmten Übereinstimmungen - Javascript, JQuery, Parsing

Extrahieren Sie das src-Attribut aus dem Skript-Tag und parsen Sie nach bestimmten Übereinstimmungen - javascript, jquery, parsing

Also muss ich in a den Seitentyp bestimmenproprietäres CRM mit JavaScript. Die einzige Möglichkeit, den Seitentyp zu bestimmen (d. H. Den einzigen konsistenten Unterschied am Front-End), besteht darin, ein Skript-Tag (aus vielen Listen) zu untersuchen, dessen src-Attribut mit / modules / beginnt.

In einer Liste von etwa einem Dutzend Skript-Tags in der Kopfzeile hat jede Seite eine Zeile des folgenden Formats

 <script src="/modules/example/includes/sample.js" type="text/javascript"></script>

Nun ist die Reihenfolge des Skripttags nie dieselbe, aber es gibt immer ein Skript mit / modules / blah. Ich muss blah in mein Skript extrahieren, um zu erkennen, um welche Art von Seite es sich handelt.

Also, wie kann ich mit JavaScript oder jQuery,Extrahieren Sie den Script-Tag "s src value", wobei src mit / modules beginnt, und speichern Sie den Wert danach ("example" im obigen Beispiel) als Javascript-Variable.

Antworten:

14 für die Antwort № 1

Nun, Sie können mit dem Sammeln aller Skriptelemente beginnen. Mit jQuery ist das so einfach wie

var scripts = $("script");

Begrenzen Sie diesen Satz dann auf die Elemente mit einem src Attribut:

var scripts = $("script[src]");

... und weiter einschränken auf diejenigen mit a src Attribut beginnend mit "/ modules /":

var scripts = $("script[src^="/modules/"]");

... was bei deiner Beschreibung zu einer Menge von genau einem Element führen sollte, aus dem du nun das ziehen kannst src Attributwert selbst:

var path = $("script[src^="/modules/"]").attr("src");

Ok, das war einfach - jetzt den nächsten Teil zu extrahierendes Weges. Es gibt viele Möglichkeiten, dies zu tun, aber das Teilen ist schnell und einfach: Erstellen Sie ein Array von Teilen mit "/" als Trennzeichen und wählen Sie dann das dritte Element aus (das nach "modules" steht):

var pathPart = $("script[src^="/modules/"]").attr("src").split("/")[2];

Dies ist natürlich alles sehr spezifisch für das genaue Format des Skriptpfads, den Sie als Beispiel verwenden, aber es sollte Ihnen eine gute Vorstellung davon geben, wie Sie beginnen sollen ...