Wie hinzufügen von DOM-element Skript den Kopf Abschnitt?
Möchte ich hinzufügen, DOM-element zum head-Bereich des HTML. jQuery nicht ermöglichen das hinzufügen von DOM-element Skript in den head-Bereich und führen Sie stattdessen Referenz.
Möchte ich hinzufügen, dass script
- tags und schreiben Sie ein Skript, in <head>
Abschnitt.
var script = '<script type="text/javascript"> //function </script>'
$('head').append(script);
Etwas wie dies mit den Funktionen. Ich habe versucht jQuery und javascript -\, aber es funktioniert nicht.
Mir bitte sagen, wie zu schreiben und hinzufügen script
an-Kopf-durch jQuery oder javascript.
Ich müde, die javascript zum hinzufügen von DOM-element, aber es funktioniert nicht mit .innerHTML()
zu schreiben, zu Kopf. Ich bin mit jQuery-2.0.3-und jQuery-UI-1.10.3.
Möchte ich hinzufügen, dass base64-codierte script-an-Kopf-Abschnitt. Ich base64-decoder js wie diese zu Dekodieren, die die javascript-und dann legte Sie den Kopf Abschnitt.
//Editiert
Es wird
$.getScript('base64.js');
var encoded = "YWxlcnQoImhpIik7DQo="; //More text
var decoded = decodeString(encoded);
var script = '<script type="text/javascript">' +decoded + '</script>';
$('head').append(script);
Fit ein Skript codiert, und die zusätzlich in einer javascript-Datei.
Ich will base64.js
oder einige andere decoder, javascript-Dateien für Browser akzeptiert keine atob()
.
- haben Sie versucht
$.getScript()
? - Ich möchte hinzufügen
<script>//function<\script>
an den Kopf des Dokuments. - Das hinzufügen von DOM-Elementen dynamisch instabil, weil Sie abhängig von browser, selbst mit
.readyState()
zum überprüfen des status. VielleichtEventListner
lösen, aber alle folgenden sind nicht gut, weil der dynamischen Belastung die Tendenz, Verweis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen, diese
document.head
besser alsdocument.getElementsByTagName('head')[0]
.Wenn die Injektion mehrere Skript-tags im Kopf wie das mit der mix von lokalen und remote-Skript-Dateien eine situation entstehen, bei denen die lokale Skripte, die abhängig von externen Skripts (wie das laden der jQuery von googleapis) haben Fehler, weil das externe Skript kann nicht geladen werden, bevor die einheimischen sind.
So etwas wie dies hätte ein problem: ("jQuery ist nicht definiert" in jquery.some-plugin.js).
Natürlich ist diese situation, was die .onload() ist, aber wenn mehrere Skripte geladen werden, die kann sehr umständlich sein.
Als eine Auflösung dieser situation, ich habe diese Funktion behalten wird, eine Warteschlange von scripts geladen werden, das laden jedes nachfolgende Element, nachdem die Vorherige beendet ist, und gibt ein Versprechen, dass verrechnet wird, wenn das Skript (oder die Letzte Skript in der queue, wenn kein parameter) fertig ist laden.
Mit diesem Skripte hinzufügen, um die Sicherstellung der vorherigen fertig sind vor dem Start des nächsten getan werden kann, wie...
Oder laden Sie das Skript und mit der return-Versprechen zu tun, Arbeit, wenn es fertig ist...
ausprobieren ::
JS:
Aber in diesem Fall-Skript wird nicht ausgeführt werden, und Funktionen werden nicht zugänglich sind, im globalen namespase.
Code verwenden, in
<script>
Sie tun müssen, wie Sie in Frage$('head').append(script);
Dies ist eine alte Frage, und ich kenne seine Fragen, speziell zum hinzufügen eines script-Tags in den head, allerdings auf der Grundlage der OPs-Erklärung, die Sie eigentlich nur wollen Sie einige JS-code, welcher erhalten worden ist durch eine andere JS-Funktion.
Dies ist viel einfacher als das hinzufügen einer script-tag in die Seite ein.
Einfach:
Eval ausführen wird ein string von JS in-line, ohne die Notwendigkeit, um es in den DOM überhaupt.
Ich glaube nicht, dass es jemals wirklich eine Notwendigkeit zum hinzufügen eines in-line-script-tag, um den DOM nach dem laden der Seite.
Weitere Infos hier: http://www.w3schools.com/jsref/jsref_eval.asp
Gemäß dem Autor, Sie möchten ein Skript erstellen, in den Kopf, nicht einen link zu einem Skript-Datei.
Möglicherweise wie folgt durchgeführt:
Beste Lösung, die ich gefunden habe:
Hier ist eine sichere und wieder verwendbare Funktion zum hinzufügen von Skript-an-Kopf-Abschnitt, wenn es nicht schon vorhanden ist.
siehe Beispiel hier: Beispiel
könnten Sie tun:
<script> // functions </script>
auf den Kopf für ein, die eine base64-codierte Skript und setzen Sie Sie in Dateien, wie ich die details Hinzugefügt.Verwende ich PHP, da mein Server-Side-Sprache, also das Beispiel, das ich schreiben werde - aber ich bin sicher, es gibt eine Methode im server-Seite als auch.
Müssen nur Ihre Server-Side-Sprache hinzufügen, dass es aus einer variable. w/php sowas würde gehen Sie wie folgt vor.
Tun, beachten Sie, dass dies nur funktioniert, wenn die Skript geladen wird, mit dem laden der Seite.
Wenn Sie möchten, um es zu laden dynamisch, diese Lösung wird dir nicht helfen.
PHP
HTML
In der Zusammenfassung: Decodieren mit serverside und legen Sie es in Ihr HTML mit der server Sprache.