2012-04-04 10 views
5

Kann das Attribut "src" eines vorhandenen Elements <script> mithilfe von Jquery.attr() geändert werden? Es schien eine einfache Möglichkeit zu sein, JSONP zum Laufen zu bringen, aber ich kann das nicht für mich erledigen.Ändern des Attributs "src" von <script>

+0

Warum nicht einfach ein neues Skriptelement zum Dom hinzufügen? –

Antwort

15

Es stellt sich heraus, dass ein Skript src kann nur einmal gesetzt werden! Es ist nicht möglich, das src-Attribut eines vorhandenen Elements <script> im DOM zu ändern. Ein dynamisch erstelltes <script> Element kann jedoch seine Quelle festgelegt haben (aber genau einmal!)

+2

Ich weiß, das ist eine alte Antwort, aber haben Sie irgendwelche Links, um dies zu unterstützen. Ich habe ein ähnliches Problem und bisher funktioniert nichts. jegliches Lesematerial dazu würde sicherlich helfen. – ChickenWing24

3

Wenn Sie versuchen, ein Skript zu laden, können Sie stattdessen getScript verwenden.

http://api.jquery.com/jQuery.getScript/

Oder, wenn Sie die src aus einem anderen Grund ändern möchten, da Script-Tags können nicht ids haben entweder Sie könnte ein HTML5-konforme data-id Attribut oder Übereinstimmung mit der vorhandenen src verwenden. Dann könnten Sie einfach den Src-Wert mit attr ändern. Dies lädt das Skript jedoch möglicherweise nicht in allen Browsern.

+0

* "Da Skript-Tags keine IDs haben können" * Sicher können sie, was auch immer Sie sonst denken lässt ?! –

3

Während ja, das ist möglich, müssen Sie dies nicht manuell tun, da jQuery eine gute integrierte Unterstützung für JSON-P-Anfragen hat. Siehe die Dokumentation für die Methoden $.getJSON und $.ajax.

+1

Das ist nicht die Frage. Die Frage ist "Können Sie den Quellcode überhaupt ändern, wenn das Skript-Tag bereits existiert?" –

+1

Schöne Dankbarkeit. Lesen Sie Ihre Frage erneut. es las sich wie jemand, der JSON-P machen wollte, dachte aber, dass er es manuell machen musste. Wenn Sie es manuell machen wollen, sehen Sie sich die Antwort von Aram an. –

+3

Keine Frage der Dankbarkeit - du hast die Frage falsch interpretiert. Die Frage war nicht, wie man JSONP in JQ machen sollte, es war ein technischer Punkt, den Skript-Quellcode zu ändern. Ihre Antwort war nicht hilfreich. –

Verwandte Themen