Warum funktioniert mein

Andere Tipps

Es ist wahrscheinlich nicht, wo Sie denken, es sucht Ihre JavaScript-Datei zu greifen.

ein serverbezogene Format wie dies versuchen:

<script src="/some/path/to/pageControl.js"></script>

Wenn das immer noch nicht funktioniert, stellen Sie sicher, dass Sie die URL Ihrer Script-Datei in den Browser eingeben können und bekommen es zum Download bereit.

Stellen Sie sicher, dass Sie, dass innerhalb von entweder <head> oder <body> der HTML-Seite. Außerdem würde ich verdoppeln den Pfad zur JS-Datei überprüfen. Sie könnten durch Einfügen „pageControl.js“ an der Wurzel Ihrer Web-Adresse tun.

Reise sucht:

  • Verwenden Sie Firebug (NET Tab) überprüfen, ob die JS-Datei mit dem Status 200 geladen wird. Überprüfen Sie auch in der Registerkarte Konsole für alle JavaScript-Fehler.
  • Sind Sie mit HTML5 offline . Wenn Sie das tun, vielleicht dient es eine Cache-Version, die nicht Ihrem <script>-Tag enthält.
  • Auf der Seite Quelle und stellen Sie sicher, dass es den script-Tag enthält.
  • ändern Sie das Quellattribut zu absolutem Pfad: <script src="http://www.example.com/js/pageControl.js" type="text/javascript"></script>
  • Besuchen Sie http://www.example.com/js/pageControl.js und stellen Sie sicher, es zeigt, richtig.
  • Versuchen Sie, die <script> direkt nach dem <head> zu platzieren, so dass es zuerst geladen wird.

Das ist alles, was ich denken konnte.

Sie können dynamisch Skript laden, indem Sie das Element erstellen und es dann an Kopf oder ein anderes Element anfügen:

reportWindow.document.write(pageContent);                      
var script = document.createElement('script');
script.src = 'pageControl.js';
script.type = 'text/javascript';
reportWindow.document.getElementsByTagName('head')[0].appendChild(script);
reportWindow.document.close();

Haben Sie versucht, die jquery $("#target_div").load(...) mit Dies führt auch JS in der Ausgabe ...

Dieses Dokument lesen, um herauszufinden, wie es zu benutzen:

http://api.jquery.com/load/

Für mich klingt es wie Sie ein Skript entladen erwar zu arbeiten.

Versuchen Sie, einen Blick hier: http://ensure.codeplex.com/ Sourcecontrol / changeset / view / 9070 # 201379

Das ist ein bisschen von JavaScript, das das Skript stellt sicher, dass ordnungsgemäß geladen wird, bevor der Zugriff versucht wird. Sie können diesen entweder als träges Laden verwenden (Laden nur Javascript-Dateien bei Bedarf), oder, wie ich Ihr Problem zu interpretieren, einen Skript Laden basierend auf dem Ergebnis von Ajax-Aufrufen.

Was wohl passiert ist, Sie eine Zeichenfolge über einen Ajax-Rückruf sind Echo, nicht ein Element eingefügt wird. Externe Skripte erfordern einen zweiten GET-Aufruf ihre Inhalte zu laden, was nicht geschieht - nur der erste Anruf passiert ist. Also, wenn der erste Aufruf des Inline-Code enthält, wird der DOM muss keine zusätzliche GET-Anfrage machen, um den Inhalt zu holen. Wenn das DOM nicht das Skript sehen, der DOM wird es nicht ausgeführt werden, was bedeutet, es ist nur ein zufälliger Tag.

Es gibt eine sehr schnelle Art und Weise zu erfahren. In Chrome (oder Firefox mit dem Firebug-Plugin installiert ist), überprüfen Sie die Konsole> Auswahl Skripte alle geladenen Skripts zu sehen. Wenn es nicht aufgeführt ist, ist es nicht geladen, und der Script-Tag Sie im Markup sehen ist ansonsten inert.

Da ist es wohl nur eine Zeichenfolge so weit wie PHP kümmert, könnte man es als PHP-DOM-Objekt zu erstellen, und legen Sie es richtig (auch wenn dies mühsam sein könnte). Stattdessen vielleicht legen Sie es ganz am Ende der Seite, kurz vor dem Schließkörper-Tags (Dies ist die bevorzugte Position für js sowieso - tot. Endlich, nachdem alle anderen Elemente auf der Seite geladen haben und sind auf das DOM zur Verfügung.)

HTH:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top