Sassy Geschrieben 30. November 2009 Teilen Geschrieben 30. November 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Never Geschrieben 30. November 2009 Teilen Geschrieben 30. November 2009 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); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 30. November 2009 Autor Teilen Geschrieben 30. November 2009 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Never Geschrieben 30. November 2009 Teilen Geschrieben 30. November 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 1. Dezember 2009 Autor Teilen Geschrieben 1. Dezember 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Never Geschrieben 1. Dezember 2009 Teilen Geschrieben 1. Dezember 2009 Morgen, ja head-node gibt es auch nicht, ich meinte damit das du hier ein Head-Node nimmst. Ala: document.getElementsByTagName("head")[0] oder falls du eine JS-Bibliothek nutzt, ob es da ein Element für gibt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Never Geschrieben 1. Dezember 2009 Teilen Geschrieben 1. Dezember 2009 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). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 3. Dezember 2009 Autor Teilen Geschrieben 3. Dezember 2009 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 3. Dezember 2009 Autor Teilen Geschrieben 3. Dezember 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Never Geschrieben 4. Dezember 2009 Teilen Geschrieben 4. Dezember 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 4. Dezember 2009 Teilen Geschrieben 4. Dezember 2009 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 7. Dezember 2009 Autor Teilen Geschrieben 7. Dezember 2009 Ich habe jetzt die Sache mit dem IFrame ausprobiert. Nun funktioniert es im FF aber nicht mehr im IE. Werde morgen früh mal den Code dafür posten, vllt hat ja jemand eine Idee, worans liegen könnte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Sassy Geschrieben 8. Dezember 2009 Autor Teilen Geschrieben 8. Dezember 2009 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Never Geschrieben 11. Dezember 2009 Teilen Geschrieben 11. Dezember 2009 Hi Sassy, könntest du vielleicht mal das Projekt online stellen? Weil so ganz ohne Code und Ergebnisse kann ich da jetzt auch nicht weiter helfen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.