Zum Inhalt springen

[JavaScript] Eine externe Datei aufrufen


Sassy

Empfohlene Beiträge

Hallo liebe Community,

ich bin dabei eine kleine Webseite zu basteln und nutze dazu JavaScript (und HTML). Das ganze basiert auf Ajax.

Nun möchte ich, dass eine externe Datei aufgerufen wird, wenn sich der Inhalt in einem Inputfeld verändert.

<input type='text' id='inputscale' value="scale" onchange='change()' >"; 


  function change() {

     ...

  };

Der Aufruf der Datei soll in change() stehen. Ich weiss leider nicht, wie ich das machen kann.

Es handelt sich um eine .js Datei von einer anderen Webseite bzw. einem anderen Server.

Dort steht Quellcode drin, der direkt mit dem Aufrufen der Datei ausgeführt werden soll. Rufe ich die Datei per URL auf, klappt das.

Gibt es dafür bereits eine Funktion, die ich nutzen kann oder hat jemand einen Tipp?

Ich habe es mit Ext.ajax.request probiert allerdings fragt dieses nur nur den Quellcode ab und bindet ihn ein, führt diesen aber nicht aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Sassy,

da ich nicht genau weiß wie die Parameter mit gesendet werden ( ich gehe davon aus das du was sendest ) würde ich entweder mit eval(code); den code ausführen oder wenn es einfach per GET ist, würde es wohl auch gehen wenn du kein ajax nimmst sondern dir ein script-Tag baust und das dann einbindest:

var script = document.createNode("script");

script.src = "file.js?para=value";

(head-node).appendChild(script);

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mir ist gerade aufgefallen, dass der Ajax request, den ich gebastelt habe, doch funktioniert, allerdings nur im IE:


Ext.Ajax.request({

          url: "..../html/Session.jsp",                                                      

          method: 'GET',                                                                                                    

          success: function(req){

            document.getElementById('objectinfo').innerHTML =  req.responseText;

          },

          failure: function() {

            document.getElementById('objectinfo').innerHTML = "failure";

          }

        });

Der IE meldet, dass dieser Zugriff ein Sicherheitsproblem sein kann und fragt, ob ich trotzdem darauf zugreifen möchte.

Ich vermute, dass der FF dieses automatisch blockt.

Werde mir aber deinen Vorschlag auch mal anschauen :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ah ich habe gerade gesehen das ich vergessen hatte das zu schreiben.

AJAX auf andere Domains, wird Standard mäßig von Firefox geblockt ist eine Sicherheitsrichtlinie, erst in v.3.5 oder 3.6 ist das erlaubt, auch andere Browser werden das glaube ich blocken.

Mit dem 2. Beispiel von mir (SCRIPT) umgeht man das quasi.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, Ajax blockt das normalerweise, aber mit 'nem Proxy geht das.

Ich habe deinen Vorschlag mal eingebaut, habe aber ein Problem mit der letzten Zeile "head-node". Da meldet Firebug, dass er das nicht kennt.

Ansonsten wurde aber die Datei Session.js bisher nicht angefordert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da ich keine Editierfunktion gefunden habe, hier ein Nachtrag:

du musst wahrscheinlich auch noch eine Überwachung schreiben, damit du weißt wann die Daten verfügbar sind. Entweder du baust noch ein onload Event ein oder wenn du weißt was ankommt, eine Überwachung ob die Variable verfügbar ist (z.b. mit setInterval).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich noch mal ;)

Habe es jetzt wie folgt probiert:

 var script = document.createElement("script");

      script.src = ".../html/Session.jsp";

      document.getElementById('objectinfo').appendChild(script);

Im FireBug bekomme ich aber folgende Fehlermeldung zurück:

XML cannot be the whole program

[break on this error] </html>\n

:confused:

Zumindest greift er auf die Datei vom anderen Server zu. Er liefert aber keine Daten.

Jemand 'ne Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe gerade noch etwas rausgefunden.

Die gleiche Meldung bekomme ich, wenn ich die Datei einfach schlicht so einbinde:

<script type="text/javascript" src=".../html/Session.jsp"></script>

Allerdings ist bei beiden Methoden die Antwort die das Dokument zurückliefert, korrekt. Also die Datei Session.jsp beinhaltet HTML und ich bekomme auch als Antwort diesen HTML Code zurück.

Jetzt stellt sich mir die Frage, wie ich diesen HTML Code aus der Antwort auch auf meiner Webseite anzeigen lassen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ach so, es geht um HTML daten, ich dachte JS, wohl verlesen o.O

Dann wäre es besser dies mit IFrame einzubinden. (Kann auch ein verstecktes sein). Da kommst du an die Daten aber nur ran wenn es die gleiche Domain ist.

Im Notfall musst du ein "Proxy" bauen damit die Beschränkung ausgehebelt wird.

Also eine jsp oder php script welches die Datei lädt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also *.jsp ist eigentlich die Endung für Webseiten die mithilfe von Java (NICHT JavaScript!) auf dem Server erstellt wurden. Das heißt, wenn du von dieser Session.jsp Seite reinen HTML Code zurück bekommst, kannst du den schlecht in einem script Element, was hinter der Quelldatei eine reine JavaScript Datei vermutet, einbinden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bekomme im IE die folgende Fehlermeldung:


Details zum Fehler auf der Webseite


Benutzer-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

Zeitstempel: Tue, 8 Dec 2009 07:50:58 UTC



Meldung: Zugriff verweigert


Zeile: 1129

Zeichen: 2

Code: 0

URI: <externerserver>/scripts/osiris_map.js

Wieso sie kommt, weiss ich. Hätte gerne aber eine Möglichkeit, eine externe Datei problemlos einzubinden. Ohne Fehlermeldung. Jemand eine Idee?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...