• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Probleme mit IFrames

Status
Für weitere Antworten geschlossen.

supertobs

Mitglied
Hallo Community,

Ich will für mein aktuelles Projekt einen Browser schreiben.
Dieser funktioniert mit 2 IFrames.

Im ersten wird die Browserbar angezeigt.

Bar.html
Code:
<link rel="stylesheet" type="text/css" href="style/firewulfstyle.css" /><script type="text/javascript" src="js/firewulf.js"></script><div class="firewulfbrowserleiste"><form id="THEURL" action="javascript:firewulfURLopen()" method="POST"><input type="text" value="http://"><input type="submit" value="Öffnen"></form></div>
Das IFrame:
Code:
<iframe id="firewulfLeiste" frameborder="0" scrolling="auto" style="width:100%;height:30px;" src="programms/Firewulf/bar.html"></iframe>
Im zweiten wird die Seite angezeigt
Code:
<iframe id="firewulfBrowser" frameborder="0" style="width:100%; height:85%;"src="'.$URL.'" name="FirewulfWebsite"></iframe>
Nun habe ich eine Funktion geschrieben mit der der Src des IFrames aktualisiert werden soll.
Doch leider kann ich auf das IFrame wo der Browserangezeigt wird nicht zugreifen.

(Problem fett und unterstrichen)
Code:
function firewulfURLopen(){
alert('open');
[U][B]var URL=document.getElementById('firewulfBrowser').document.getElementById('THEURL');[/B][/U]
document.getElementById('firewulfBrowser').src=URL;
}
Wie kann ich nun auf das andere iFrame zugreifen?
 
Mit var URL=document.getElementById('firewulfBrowser').document.getElementById('THEURL'); hast du doch keine URL. Du willst URL.elements[0].value.
 
Stimmt,es fehlt value. Probier ich gleich mal aus.
var URL=document.getElementById('firewulfBrowser').document.getElementById('THEURL'
);
Damit wird der URL aus dem Textfeld geholt.

Mit der Zeile darunter sollte es in das IFrame eingefügt werden.


EDIT:
Fehler: Fehler: document.getElementById("firewulfLeiste") is null
Quelldatei: http://localhost/PHP-OS/programms/Firewulf/js/firewulf.js
Zeile: 3
 
Zuletzt bearbeitet:
Du führst diese Funktion innerhalb eines iframes aus. Folglich musst Du JavaScript erst sagen, dass es aus dem iframe "ausbrechen" soll. Das geht mit dem Signal

Code:
parent

In deinem Fall also:

Erst den Wert aus dem Feld in der aktuellen HTML-Datei innerhalb des iframes laden:
Code:
var URL = document.getElementById('THEURL').value

Dann diese URL dem anderen iframe zuordnen:

Code:
parent.getElementById('firewulfBrowser').src=URL;

Hinweis: das würde nur in exakt deiner Konstellation funktionieren. Solltest Du weitere iframes oder frames dazwischen einbauen, geht es nicht mehr weil "parent" dann andere frames ansprechen würde. Aus dem Grund würde ich dir auch raten nicht mit mehreren iframes zu arbeiten. Du bräuchtest nur ein einziges eigentlich.
 
Jetzt nocheinmal eine Blöde frage, aber ich habe ein kleines Problem mit dem einbinden einer .js datei.

Das programm wird in der index.php per Ajax eingebunden. die javascript datei wird über die browser.php datei eingebunden, die über ajax in der index.php datei eingebunden wird.

Also sieht der baum folgendermaßen aus:

/index.php Die indexdatei wo alles aufgerufen wird.
/programms/Firewulf/js/firewulf.js Die Javascriptdatei
/programms/Firewulf/browser.php Die per Ajax eingebundene Datei.


Von welcher Datei aus muss ich den Pfad zu javascript datei eingeben?

Das seltsame ist, dass die funktion auch nichtg gefunden wird, wenn ich sie direkt in der browser.php datei einbinde.
 
JavaScripts kann man nur schwer per AJAX nachladen. Moderne Browser wie Firefox und Chrome verstehen das, der IE unterstützt es jedoch nur sehr eingeschränkt. Also solltest Du dir überlegen die JavaScript-Datei doch gleich direkt einzubinden, statt sie erst über AJAX zu laden.

Und wegen den Pfaden: absolute Pfade sind immer am Besten wenn man nicht durcheinander kommen will.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben