Was ist der Punkt, der mit einem ID-Attribut im script-tag?
Im Grunde, was ich Fragen ist, was ist der Punkt, dass meine script-tags ein id-Attribut? Können die Routinen, die in Ihnen genannt werden oder auf die verwiesen wird anders, weil dieser Identifikation? Könnte dies dazu führen, keine Probleme macht, das Skript/Seite handeln lustig?
Dank.
- Es gibt nicht wirklich eine Punkt-zu-hinzufügen einer id zu einem script-tag. Gibt es eine bestimmte Instanz, die Sie Fragen?
- Also, was ist hier das problem? Manchmal ist es nützlich, fügen Sie ein
id
zu einemscript
tag, wenn Sie wollen, zu analysieren. - Nicht unbedingt ein problem hatte ich erst vor kurzem über einige code, in dem alle script-tags hatte-id-Attribut-ich war neugierig, warum, wenn Sie keinem Zweck dienen?
- mögliche Duplikate von Warum würde ich eine ID auf ein script-tag?
- Mögliche Duplikate von Warum würde ich eine ID auf ein script-tag?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
id
ist nur ein weiterer accessor der<script>
tag in den DOM-Baum. Sie könnte in der Theorie verwendendocument.getElementById()
zum abrufen der<script>
Knoten, und löschen Sie es oder fügen Sie weitere Attribute (obwohl ich nicht glaube, dass Sie ändern können, diesrc
Attribut, sobald es geladen wurde, im DOM). Dieid
ist nicht erforderlich, für diese Operationen, obwohl-es könnte auf die zugegriffen wurde, die von beliebigen DOM-Funktion wiegetElementsByTagName("script")
als gut.Wenn Sie tun müssen, um Zugriff auf die
<script>
tag mit DOM-Manipulationen, dieid
macht es nur ein wenig einfacher. Ansonsten gibt es wenig nutzen1.1Das ist eine Art von true, das hinzufügen einer
id
Attribut alle DOM-Knoten, wenn Knoten beeinflussen-Präsentation können auch profitieren von CSS Ausrichtung derid
im Gegensatz zu einem<script>
tag...Als die früheren Antworten erwähnt haben, sobald der code im script-tag ausgeführt wird, werden die Ergebnisse nicht rückgängig machen-ed durch ersetzen/löschen des Skript-Knoten.
Aber die id kann nützlich sein, wenn der code nicht ausgeführt bis jetzt. Folgendes ist so ein script-tag:
Da der browser nicht bewusst diese Art von Skript, ignoriert es die Ausführung, aber der tag und der code wird weiterhin verfügbar sein in der DOM.
Beispiel: http://jsfiddle.net/sv_in/rt9Q2/
Dies ist vor allem für die client-side-templates. Eine Vorlage, Beispiel für Mustache.js, gespeichert ist, in solch einem script-tag. Wenn es benötigt wird, kompiliert werden, er wird gewonnen aus tag unter Verwendung Ihrer id. Vorteil bei diesem Ansatz ist, dass die anzeigen (templates) und das Modell (js variable, die die Daten enthalten, werden in der Ansicht dargestellt) ist völlig separat.
Andere als diese Praxis, es gibt keine Allgemeine Verwendung für eine id für ein script-tag
Gibt es keine Bedeutung geben-id, um Ihre Skript-tags, die Skripte auf einer Seite, führen Sie einfach in einer Sequenz Sie sind auf der Seite.
Hinzufügen eines id-Attributs zu Ihrem script-Elemente dient 2 bestimmten Zwecken:
1. erkennen Sie Ihre Skripte beim Lesen der web-Seite den Quellcode;
2. die HTML-Referenz sagt, dass Sie sollten in der Lage sein, überschreiben Sie den Inhalt von einem identifizierbaren element (aber die Erfahrung lehrt uns, dass nur wenige Browser tatsächlich tun).
Zum Beispiel, wenn Sie bereits ein Skript mit der id="myParticularScript", fügt dann ein neues script-element mit derselben id soll die alte ersetzen, laden die neue (oder die gleiche) angegebene Quelle im src-Attribut.
Während meine Erfahrung mit dynamische laden von javascripts beweist, dass das neue Skript nicht bekommen in den browser geladen, keine browser getestet habe ich es geschafft, Sie zu ersetzen das ältere element, das hält die gleiche id.
So, dass die Blätter das erste Ziel: die einfache Anerkennung. In meiner Arbeit verwenden wir Systeme, um Webseiten zu generieren, und wir nicht immer wissen, welches script (oder css-link, für diese Angelegenheit) Hinzugefügt werden, indem Sie die Komponente. Wir lösten dies, indem die ids sowohl für den script-tags und der css-link-tags, - ids, wir waren in der Lage zu erkennen und zurückverfolgen zu unseren Systemen.
Könnte dies nützlich sein für die Prüfung der Existenz der Ressource-Datei in den src-url-Attribut in den server. Für cache-busting, reverencing der name der Datei .js-und .css-Dateien erforderlich sind. Dies wird helfen, heraus zu überprüfen, ob die Datei Namen geändert hat, in den server und dann Mach ein reload via code über
Code-Beispiel (angularjs):
Gibt es einen Einsatz, niemand erwähnt: die
id="test"
Attribut setzt die Globale variabletest
zeigt auf das element selbst. Siehe:Fand ich eine sehr neuartige Verwendung für die Angabe von ID, um eine
script
tag. Ich hatte eingebettet tawk.zu script in meine website zu zeigen, seine chat-widget. Das problem ist, dass das widget nicht verstecken, wenn ich will, um die Seite zu drucken. So würden Sie sehen, das widget, wiederholt sich auf jeder Seite in der Druckvorschau, oft verdunkelt den Inhalt einer Seite!Um das problem zu beheben, habe ich zunächst beobachtet, wie das widget Hinzugefügt wird. Ich fand heraus, dass das widget Hinzugefügt wird, direkt nach dem script-tag. Aber das widget (eingehüllt in eine
div
tag) hat keine Klasse, und es hat eine zufällig generierte ID, die ist jedes mal anders.Es musste einen anderen Weg zu fangen, zu halten, dass widget (die
div
tag), ohne sich auf JavaScript-tricks. Das ist, wenn ich gelernt, dass CSS hat eine "adjacent sibling" oder "nächste Geschwisterchen" - Selektor, die überraschenderweise hat sehr anständige browser-Unterstützung.Also erstmal, ich habe eine ID für das Skript-tag.
Dann habe ich verwendet die ID und den nächsten sibling-Selektor CSS anzuwenden, um die widget.
Viola! Problem gelöst.
Ich verwendet
script
id
tag in ein bookmarklet; ich füge diescript
element via Javascript zuDOM
alongwith einediv
; dann Einsatz; es & wenn/wenn Benutzer auf dieClose
- Taste auf meinem Hinzugefügtdiv
; ich finde diesescript
element von ID & löschen Sie es aus dem DOM auf die Seite verlassen, als ich es gefunden.Könnten Sie kommen in praktisch, wenn Sie denken, der laden von scripts träge. Auch ich erinnere mich, dass ich einst eine ID auf ein script-tag zu erleichtern, die Veränderungen, die auf meta-content, je Staat zu ändern (es wurde ein single-page-Applikation).
Mit einer ID auf ein script-tag, können Sie überprüfen, ob auf einer bestimmten Instanz, ob ein script-tag mit einer bestimmten ID gibt es in der DOM-oder nicht. Wenn es nicht gibt, und wenn Ihre route erfordert es, dort zu sein, können Sie laden Sie es dann (aufgrund bestimmter Bedingungen).
Angenommen, es gibt ein Skript, das Sie brauchen, um zu laden träge. Nehmen wir ein Beispiel von einigen chat-widget. Sie können Fälle auftreten, können dazu neigen, Sie zu laden Sie das chat-widget wird nur und nur, wenn ein Benutzer passiert zu klicken Sie auf, sagen wir, einen chat-Knopf.
Hier werden Sie träge laden Sie die chat. So, einen möglichen Fall aus ihm werden kann:
"wenn Benutzer klickt auf die Schaltfläche "chat", Spritzen Sie das chat-widget-js in den DOM".
Einfach? Hölle ja. Aber, denken Sie über den Fall, wenn ein Benutzer klickt auf den chat-button wieder. Was wird passieren? Das gleiche script wieder injiziert werden, aber Sie möchten sicherlich nicht, dass das passiert, tun Sie?
So, sagen wir mal das chat-widget js geht in den DOM von:
Eine gute Lösung für die Bewältigung der "zweiten Klick" - problem auf der chat-Schaltfläche, um zu sehen, ob das Skript bereits existiert, in den DOM, und wenn Sie es tut, lassen Sie sich nicht die gleichen get angehängt zweimal in der DOM.
So, dass Ihre Schaltfläche werden könnte:
Und Ihre loadChatWidget () - Funktion könnte sein:
Dies ist nur eine Art der Verwendung einer ID auf ein script-tag, und es ist auch nützlich!