iFrame und Hintergrund
Marco
- css
0 Christoph Schnauß0 Marco
0 Kalle_B0 Marco0 Gernot Back
Guten Abend,
ich möchte folgendes auf meiner Webseite machen:
1.) ein iFrame soll ein Hintergrundbild bekommen.
Hier habe ich schon das erste Problem. Wenn ich es mit CSS, also mit <style background...> versuche, dann klappt es nicht und das iFramefenster bleibt leer.
Wer kann mir dazu weiter helfen.
2.) Wenn Nr. 1 klappt, dann möchte ich per Javascript das Hintergrundbild dynamisch ändern lassen. Dazu hatte ich die Idee, mit document.iFrameName.background.src = "URL"; das iFrame auszuwählen und den Hintergrund mit der neuen url zu laden.
Dies klappt aber nicht. Ich bekomme im IE jedes Mal die Meldung: "...ist Null oder kein Objekt".
Warum das? Das iFramefenster an sich ist dem Browser doch bekannt.
Danke für die Antworten!
Marco
hallo Marco,
ein iFrame soll ein Hintergrundbild bekommen.
Du möchtest dich damit beschäftigen, was ein iFrame eigentlich ist. Sehr schnell bekommst du heraus, daß dies eben nur ein "Rahmen" ist. Der hat keinen Hintergrund. Fertig.
dann möchte ich per Javascript das Hintergrundbild dynamisch ändern lassen. Dazu hatte ich die Idee, mit document.iFrameName.background.src = "URL"; das iFrame auszuwählen
Was dir natürlich nichts bringt. Zugang zu einer Problemlösung bekommst du, wenn du dir klarmachst, daß alles, was in deinem iFrame angezeigt wird, ja Bestandteil der in diesen Rahmen geladenen "Seite" ist. Ist das ein HTML-Dokument, kann das dann natürlich einen Hintergrund haben, und den kannst du nahezu beliebig manipulieren.
Grüße aus Berlin
Christoph S.
Hallo Christoph,
ich glaube Du scheinst mein Problem erkannt zu haben. Ich denke mal, dass ich bis dato noch nicht exakt wusste, was ein iFrame eigentlich ist.
Ich habe angenommen, dass es das gleiche ist, wie ein Frame, nur innerhalb eines Dokumentes verwendbar. Wenn ich Dich richtig verstanden habe, dann muss ich, um das iFrame zu verwenden, erst eine Seite hineinladen. Das hatte ich bereits getan - wahrscheinlich eher unwissentlich.
Aber trotzdem noch eine Frage:
Wieso kann ich mit Java per document keine Layer ansprechen? Den Hintergrund von Layern kann man doch ändern!
Danke!
hallo,
Wieso kann ich mit Java per document keine Layer ansprechen?
Das sind gleich drei verschiedene Verständnisprobleme:
1. meinst du mit an Sicherheit grenzender Wahrscheinlichkeit Javascript und nicht Java.
2. document kannst du selbstverständlich mit Javascript ansprechen
3. "Layer" ist kein programmiertechnisch streng definierter Begriff - in der Regel wird heute damit ein DIV gemeint.
Grüße aus Berlin
Christoph S.
Danke für die Antworten!
Ja, ich meinte Javascript. Da kam jedesmal die Fehlermeldung im IE.
Werde es anders versuchen müssen.
Mache gleich ein neues Posting auf. Vielleicht kannst Du mir da weiterhelfen.
hallo Marco,
Mache gleich ein neues Posting auf.
Lieber nicht - du kriegst dann die böse Meldung "Doppelposting" vor den Latz geknallt. Du kannst doch hier in deinem Thread beliebige weitere Fragen stellen. Bleib mal hübsch in diesem thread.
Grüße aus Berlin
Christoph S.
Da war ich wohl zu schnell und habe schon einen neuen thread aufgemacht...tschuldigung...
OK, dann versuche ich es mal hier.
Ich habe folgendes Problem.
Ich lese mit PHP eine txt-Datei zeilenweise aus:
$Verein = file("Vereinsdaten.txt");
Nun habe ich in meiner php-Datei folgenden HTML-Code, der auch Javascript enthält, um ein Layer ein- und auszublenden:
<map name="Landkarte">
<area id="Ver" name="Ver" value="1" shape="circle" coords="127,323,11" onMouseOver="javascript:Einblenden('1');" onClick="<? // $V="0"; ?> javascript:Ausblenden();" alt="Langenbach (SV Rotation Langenbach)">
<area "VereinID" name="Ver" value="3" shape="circle" coords="491,153,11" onMouseOver="Vereine.php?var=1; javascript:Einblenden('2');" onMouseOut="javascript:Ausblenden();" alt="Bautzen (KBV Bautzen)">
</map>
Wenn der Benutzer mit der Maus über den Punkt "1" fährt, also über den Verein Langenbach, dann soll ein Wert an das PHP-Array übergeben werden und die Daten aus der txt-Datei in dem eingeblendeten Fenster erscheinen.
Wenn der Benutzer nun mit der Maus über Punkt "2" fährt, bekommt das Array mit einen bestimmten Zahl addiert, damit andere Zeilen zu dem Verein Bautzen angezeigt werden.
Die Theorie ganz gut, aber ich kann den Wert von Javascript nicht an PHP übergeben. Ich will aber auch die Seite nicht neu laden lassen, damit php die Werte über den Server neu abfragt.
Kann mir jemand helfen?
hallo Marco,
Da war ich wohl zu schnell und habe schon einen neuen thread aufgemacht
Mit einer deutlich anderen Fragestellung als du sie jetzt _hier_ hast. Ok, ich klebe dann mal das Schild "Doppelposting" dran, und der Forumsgeist wird dann den neuen Thread bestimmt auf NA (nicht archivieren, nicht antworten) setzen.
Ich lese mit PHP eine txt-Datei zeilenweise aus:
$Verein = file("Vereinsdaten.txt");
Das sieht nicht so aus, als ob das wirklich "zeilenweise" wäre. Ist aber möglicherweise auch gar nicht erforderlich.
Nun habe ich in meiner php-Datei folgenden HTML-Code, der auch Javascript enthält
Du postest nicht alles. Wenn da tatsächlich Javascript enthalten ist (was durchaus geht), so wird es ebenfalls von PHP "generiert", das heißt, es wird auch von deinem PHP-Script an den Server zur Übergabe an den anfragenden Browser weitergereicht. Es ist nicht ganz so schlimm, weil man deine Javascript-Funktionen nicht unbedingt im Detail kennen muß, um deine Frage zu verstehen.
Die Theorie ganz gut, aber ich kann den Wert von Javascript nicht an PHP übergeben.
Das kannst du tatsächlich nicht. Jedenfalls nicht so, wie du es versucht hast. Aber was hindert dich, eben noch zwei Javascript-Funktionen mehr zu schreiben, die dann die von dir gewünschten Effekte erzeugen? Du kannst deine Textdatei bereits auf dem Server von PHP auslesen lassen und als Wert einer Javascript-Variablen übergeben. Das kannst du nahezu beliebig oft tun.
Ich will aber auch die Seite nicht neu laden lassen, damit php die Werte über den Server neu abfragt.
Warum nicht? Es wäre wahrscheinlich die einfachste Lösung.
Grüße aus Berlin
Christoph S.
Guten Abend,
1.) ein iFrame soll ein Hintergrundbild bekommen.
Ja, etwa so:
<iframe style='width:300px;height:300px;background-image:url(060120_5.jpg)'>
</iframe>
Klappt im Firefox JA, im IE 5 NEIN
Kalle
Ich habe leider keinen FireFox. Kann ich mir aber durchaus vorstellen.
Deine Angabe würde sich aber mit der von Christoph widersprechen. Er meinte, iFrames können keinen Hintergrund bekommen, da sie nur einen Rahmen haben.
?
Deine Angabe würde sich aber mit der von Christoph widersprechen. Er meinte, iFrames können keinen Hintergrund bekommen, da sie nur einen Rahmen haben.
Ich bin halt Praktiker. Schaue, was geht. Und im FF geht's.
Eine Hummel kann auch nicht fliegen, weil sie für ihr Gewicht viel zu kleine Flügel hat. Aber sie weiss das nicht - und fliegt.
Kalle
hi,
Ich bin halt Praktiker.
Und als solcher kommst du nicht auf die Idee, Lösungen zu empfehlen, die in mehr als einem Nischenbrowser funktionieren?
gruß,
wahsaga
Hallo.
Ich bin halt Praktiker.
Wenn du Praktiker bist, bin ich Obi.
MfG, at
hallo,
Ich habe leider keinen FireFox.
Dann besaorge dir einen. Mußt du lediglich downloaden.
Deine Angabe würde sich aber mit der von Christoph widersprechen. Er meinte, iFrames können keinen Hintergrund bekommen, da sie nur einen Rahmen haben.
Nein, das meinte er nicht. iFrames _sind_ Rahmen, aber sie _haben_ keine Rahmen - wie übrigens Frames ganz allgemein auch.
Es gibt nun ein paar Dinge in CSS 2.x (und wird sie in CSS3 geben), die der Internet Explorer in Version 6 schlicht nicht versteht. Firefox (und stellenweise Opera) sind da verständnisvoller bzw. deutlich moderner.
Daher ist es zur Zeit noch deutlich sinnvoller, Manipulationen an "Hintergründen" am in den iFrame geladenen Dokument vorzunehmen. Das verstehen dann alle aktuellen Browser.
Grüße aus Berlin
Christoph S.
Hallo Kalle_B,
Klappt im Firefox JA, im IE 5 NEIN
Im IE5 klappt das auch, wenn du in das öffnende IFrame-Tag das proprietäre Attribut allowtransparency="true" setzt und in dem im Iframe eingebundenen Dokument den Hintergrund das Body-Element mittels CSS oder bgcolor-Attribut auf transparent schaltest. Im IE6 brauchst du noch nicht einmal etwas zur Hintergrundfarbe des eingebunden Dokuments zu sagen, solange du den standard-kompatiblen Modus verwendest und dem BODY- oder HTML-Element keinen anderen als den Default-Wert "transparent" verpasst. Mit Opera läuft allerdings nichts von alledem, da ist Transparenz für (I)Frames nicht vorgesehen.
Gruß Gernot