Mailinglisten-Archive |
Hallo Gerhard, Gerhard Seidler [seitux.at] schrieb: > Denke ich muss einmal den Hintergrund der Gschicht erklären. > "Schnitze" gerade ein Gästebuch für einen Kunden. > Also dachte ich mir, nimmts ein wenig eigene Zeit mit dazu, und > stellst es der "deutschsprachichen Welt" zur Verfügung :-) > > Der Aufbau ist folgendermassen: > Die Registrierungsseite ist unter: > http://guestbook.seitux.at > Wenn man sich registriert hat, bekommt man ein Mail mit der > "Einbauerklärung". > (Teste einfach einmal) > >> Und könntest Du einmal genau sagen, von welcher Farbe Du >> sprichst, wo Du sie definiert hast und wo sie nicht zur >> Anzeige kommt? Könnte es eventuell eine Farbe sein, die mit >> diesem Javascript (-> tiny_mce.js) gesetzt wird? Vielleicht >> wird das Javascript im IE nicht richtig ausgeführt? > > Es geht hier um die Hintergrundfarbe des Kunden. > z.B.: Auf Deiner "main Seite" ist die bgcolor="navy" und der Text > yellow, wenn Du nun das Gästebuch mittels <iframe> einbindest soll > der HG des <iframe> navy und der Text yellow sein. > Lustigerweise funktioniert dies mit dem Firefox (IE [nein], Opera > [nein]) soooo... :-) Ich habe mir das jetzt noch einmal genauer angeschaut. Was Du willst, nennt sich "Cross-Site Scripting". Und das geht auf jeden Fall schon mal nicht, wenn die Seite, die Du über <iframe> oder besser und zukunftssicher über <object> in Deine HTML-Seite lädst, nicht dieselbe Domain hat. Auch sind Deine Beobachtungen nicht ganz richtig. Es stimmt, daß im Firefox die per <iframe> bzw. <object> geladene Seite dieselbe Hintergrundfarbe zu haben scheint, wie die Seite, die sie lädt. Es stimmt aber nicht, daß die CSS-Einstellungen der einbindenden Seite die Formatierung der eingebundenen Seite in irgendeiner Weise beeinflussen. Wie kommt es also dazu, daß der Hintergrund der eingebundenen Seite im Firefox derselbe ist wie in der einbindenden Seite? Der Grund ist einfach. Du mußt in drei Schichten denken. Obere Schicht: Die eingebundene Seite und ihre Hintergrundfarbe. Mittlere Schicht: Das <iframe>- bzw. <object>-Tag und seine Hintergrundfarbe. Untere Schicht: Die einbindende Seite und ihre Hintergrundfarbe. Aufgrund Deiner Programmierung, d.h. keine Hintergrundfarbe für das <iframe>- bzw. <object>-Tag und für die eingebundene Seite gesetzt, geht der Firefox-Browser hin und setzt für beide den in der CSS-Spezifikation für das Attribut background-color festgelegten Initialwert "transparent", so daß hier also die Hintergrundfarbe der untersten Schicht - also der einbindenden Seite - bis in die oberste Ebene wirkt, weil die darüberliegenden Ebenen eben keine Hintergrundfarbe haben und damit durchsichtig sind. Der Internet Explorer geht hier etwas anders vor. Er verwendet für das <iframe>- bzw. <object>-Tag entgegen der W3C-Empfehlung als Initialwert wohl Weiß. Daher kann die Hintergrundfarbe der einbindenden Seite natürlich nicht durchscheinen. U.U. weist Du der eingebundenen Seite aber auch mit dem Javascript tiny_mce.js eine Hintergrundfarbe zu. Dieses Javascript fokussiert sich aber auf den Internet Explorer und schließt insbesondere bei der Farbsetzung alle Browser außer dem IE aus. Zudem produziert es im Firefox bei der Ausführung einen Fehler: Fehler: [Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIDOMLocation.href]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: [...]/tiny_mce.js :: TinyMCE_setupContent :: line 9" data: no] Quelldatei: [...]/tiny_mce.js Zeile: 9 Was kannst Du also jetzt tun? Entweder, die Nutzer des Gästebuchs finden sich mit Deinem Standardlayout ab, oder Du ermöglichst ihnen, ein paar CSS-Werte für ihr Gästebuch auf Deinem Server zu setzen. >> Auch aufgefallen ist mir dieses: >> >> <table width="0%" height="0%"> >> width und height gleich 0%? ;-) > > Yep, damit passt sich der <table> automatisch an. Da kannst Du aber froh sein, daß die Browser so nett zu Dir sind. :-) Eigentlich dürftest Du bei 0% gar nichts sehen. Die Angabe ist nämlich unlogisch. Was sind denn 0% von der Bilschirmbreite oder einem Teil derselben? Ich würde mal sagen 0 Pixel, oder? ;-) "height" ist übrigens laut W3C-Spezifikation kein erlaubtes Attribut von <table>, so daß Du es ohnehin weglassen solltest, und "width" ist ein optionales ("#IMPLIED"), so daß Du es angeben kannst, aber eben nicht mußt. Also bevor Du <table width="0%" height="0%" ...> schreibst, schreib lieber <table ...>. Das ist zwar nicht schön, aber wenigstens korrekt und erreicht dasselbe. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive