Body-Inhalt-Ausgabe steuern
Jonny
- css
Guten Tag,
habe folgendes Problem. Ich möchte in meinem Frame-Fenster:
--------------------------------------------------------
<html><head><script langauge="JavaScript">
if(window.self == top) window.location.href="oberframe.htm";
</script></head><body>
*----------*
| |
| body |
| |
*----------*
</body></html>
--------------------------------------------------------
den Body-Inhalt je nach dem rausbringen, ob das ein Top-Window
ist oder nicht. Problem existiert nur dann, wenn der Browser
keine aktive Inhalte zulässt. Ich kann mir nur eine CSS-Lösung
vorstellen, jedoch in CSS-Sachen bin ich leider nicht so fit.
Bzw. wie kann man das Problem lösen? Es wäre mir eine grosse
Hilfe, wenn das Problem unter mind. Netscape 4.6 und Opera 5.2
auch nicht auftauchen würde. Übrigens, der html-File wird aus
PHP generiert, falls es eine Hilfe sein soll.
Und noch eine Frage: wo kann man bei IE(6.0) die Frame-Akzeptierung
ausschalten, um zu sehen, was dabei passiert.
Vielen Dank im voraus.
MfG, Jonny
Hi,
if(window.self == top) window.location.href="oberframe.htm";
sofern Javascript aktiviert ist, sieht der Besucher also die gewünschte Seite gar nicht, sondern wird zur Startseite geschickt? Fiese Sache.
Ich kann mir nur eine CSS-Lösung vorstellen
CSS weiß nichts von den Fenstern. Aber eigentlich ist das auch gar nicht nötig.
Wenn Javascript aktiviert ist und die Seite nicht im Frameset angezeigt wird, dann erfolgt ohnehin eine Weiterleitung. Du mßt also dort ansetzen, sprich etwas nur dann anzeigen, wenn Javascript deaktiviert ist oder nicht zur Verfügung steht. Du kennst <noscript>?
Übrigens, der html-File wird aus
PHP generiert, falls es eine Hilfe sein soll.
Nö. auch PHP weiß nichts von clientseitigen Fenstern.
Und noch eine Frage: wo kann man bei IE(6.0) die Frame-Akzeptierung
ausschalten, um zu sehen, was dabei passiert.
Du meinst vermutlich Javascript, oder? Das heißt hier ActiveScripting.
freundliche Grüße
Ingo
Hi, Ingo! Vielen Dank erstmal für die Antwort!
Hi,
if(window.self == top) window.location.href="oberframe.htm";
sofern Javascript aktiviert ist, sieht der Besucher also die gewünschte Seite gar nicht, sondern wird zur Startseite geschickt? Fiese Sache.
Ist keine fiese Sache. Der User soll das Frame-Fenster nicht separat anzeigen können.
Ich kann mir nur eine CSS-Lösung vorstellen
CSS weiß nichts von den Fenstern. Aber eigentlich ist das auch gar nicht nötig.
Wenn Javascript aktiviert ist und die Seite nicht im Frameset angezeigt wird, dann erfolgt ohnehin eine Weiterleitung. Du mßt also dort ansetzen, sprich etwas nur dann anzeigen, wenn Javascript deaktiviert ist oder nicht zur Verfügung steht. Du kennst <noscript>?
Der Inhalt bleibt jedoch im Falle, wenn Javascript deaktiviert ist ja derselbe und das möchte ich nicht. Mit <noscript> wäre hier zwar geholfen, aber nur zu 50%. Ich bräuchte also hier noch sowas wie <yes_script>, damit der Body-Inhalt im Falle, dass der Javascript deaktiviert ist, erst gar nicht angezeigt wird. Mann könnte natürlich es mit document.print machen, aber jede Zeile mit print auszugeben und das auch noch zweifach(+1 mal im PHP) wäre zuviel Arbeit.
Übrigens, der html-File wird aus
PHP generiert, falls es eine Hilfe sein soll.
Nö. auch PHP weiß nichts von clientseitigen Fenstern.
PHP ist hier nur deswegen erwähnt, damit die Leute wissen, was ich zur Verfügung habe.
Und noch eine Frage: wo kann man bei IE(6.0) die Frame-Akzeptierung
ausschalten, um zu sehen, was dabei passiert.
Du meinst vermutlich Javascript, oder? Das heißt hier ActiveScripting.
mit Frame-Akzeptierung meine ich es auch so. Diese Frage sollte ich separat stellen, denn hier ist sie falsch. Ich meine hier also, dass ich den IE(6.0) so einstellen möchte, dass er die Frames nicht anzeigen kann.
freundliche Grüße
Ingo
nochmals Danke für die nette Antwort.
MfG, Jonny
Hi,
Ich kann mir nur eine CSS-Lösung vorstellen
Den Inhalt eines Elementes kannst Du mittels CCS nur über die Eigenschaft -moz-binding steuern. Das funktioniert nur in Gecko Browsern.
So kann dann auch der Inhalt des bodies über CSS gesteuert werden.
Das sieht dann etwa so aus:
<body id="b1"></body>
und im CSS-file:
#b1 {-moz-binding:url(/path/datei.xml#id1);}
datei.xml hat folgende Struktur:
<bindings>
<binding id="id1">
html:pHier kommt etwas Text</html:p>
</binding>
</bindings>
die namespaces müssen natürlich auch noch deklariert werden:
xmlns="http://www.mozilla.org/xbl"
xmlns:xbl="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
wie gewöhnlich im root-Element.
mit Frame-Akzeptierung meine ich es auch so. Diese Frage sollte ich separat stellen, denn hier ist sie falsch. Ich meine hier also, dass ich den IE(6.0) so einstellen möchte, dass er die Frames nicht anzeigen kann.
Da MSIE -moz-binding nicht versteht wird, falls sonst nichts im Body steht als die anonymen Elemente auch nichts angezeigt.
Gruß
xulking
Hi,
if(window.self == top) window.location.href="oberframe.htm";
sofern Javascript aktiviert ist, sieht der Besucher also die gewünschte Seite gar nicht, sondern wird zur Startseite geschickt? Fiese Sache.Ist keine fiese Sache. Der User soll das Frame-Fenster nicht separat anzeigen können.
sofern die gewünschte Seite dann nicht auch im Frameset angezeigt wird, ist das fies - und auch unsinnig, denn wer z.B. über eine Suchmaschine kommt, wird nicht nochmals nach der ja bereits gefndenen Seite suchen wollen.
Mit <noscript> wäre hier zwar geholfen, aber nur zu 50%. Ich bräuchte also hier noch sowas wie <yes_script>, damit der Body-Inhalt im Falle, dass der Javascript deaktiviert ist, erst gar nicht angezeigt wird. Mann könnte natürlich es mit document.print machen, aber jede Zeile mit print auszugeben und das auch noch zweifach(+1 mal im PHP) wäre zuviel Arbeit.
Du meinst document.write. Und da führt kein Weg dran vorbei.
freundliche Grüße
Ingo
Hallo Jonny,
if(window.self == top) window.location.href="oberframe.htm";
Fiese Sache.
Ist keine fiese Sache. Der User soll das Frame-Fenster nicht separat anzeigen können.
Ist es doch. Das Standard-Framefenster interessiert mich in diesem Fall nämlich Nüsse. Warum lädst du nicht die gewünschte Seite ins Frameset?
http://aktuell.de.selfhtml.org/artikel/javascript/dyn-frames/
http://aktuell.de.selfhtml.org/artikel/phpasp/php-frames/
Grüße
Roland
Hallo Jonny,
if(window.self == top) window.location.href="oberframe.htm";
Fiese Sache.
Ist keine fiese Sache. Der User soll das Frame-Fenster nicht separat anzeigen können.
Ist es doch. Das Standard-Framefenster interessiert mich in diesem Fall nämlich Nüsse. Warum lädst du nicht die gewünschte Seite ins Frameset?
http://aktuell.de.selfhtml.org/artikel/javascript/dyn-frames/
http://aktuell.de.selfhtml.org/artikel/phpasp/php-frames/Grüße
Roland
»»
Hi Roland, danke für die Antwort!
Deine Beispiele sind zwar gut, doch helfen sie mir gar nicht.
Meine Schuld, dass ich es nicht erwähnt habe: die Haupt-Frame-Seite
kann ich nicht verändern. Ich habe eine Domäne gekauft und dort wird
unsichtbare Weiterleitung angeboten. Es ist also nichts weiter als
ein Frameset, der aus einem Frame besteht. Den Verweis auf den Frame
darf ich ändern, aber sonst weiter nichts. Speicherplatz ist auch nicht
drin und kein FTP. Meine Idee ist: den Speicherplatz bei mir auf dem Computer
zu verwenden und darauf(IP-Adresse) zu verweisen. So würde dann immer
in der Adresszeile mein Domain-Name stehen. Probleme kommen jedoch,
wenn der User manuell ein Link, der auf meine Seite verweist, im neuem
Fenster öffnet. Also, es geht mir hier nicht um die Navigation, sondern
darum, dass der User in diesem Fall in der Adresszeile eine IP-Adresse
bekommt. 1.tens ist es nicht schön und 2.tens kommt der User nicht mehr
auf meine Seite, falls er es als Link gespeichert hat, da die IP sich
inzwischen vielleicht schon geändert hat.
Höchstwahrscheinlich muss ich mir in dem Fall die Arbeit machen und
im PHP folgendes schreiben:
print "<script language='JavaScript'>";
print "document.write('html-Inhalt');";
print "</script>";
In diesem Fall wird der Script nicht ausgeführt, wenn er abgeschaltet ist.
Und der Teil <noscript> wird angezeigt, in dem dem User gesagt wird, dass
er die Seite auf dem anderem Weg erreichen soll.
Also, ich brauche ein nicht existierenden Html-Tag <yes_script>
damit ich bei PHP nicht so viel schreiben muss.
Vielleicht kann mir einer sagen, wie ich mein Problem, ohne soviel Aufwand, lösen kann?
MfG, Jonny
Hallo
Also, ich brauche ein nicht existierenden Html-Tag <yes_script>
damit ich bei PHP nicht so viel schreiben muss.
Mitnichten. Was du brauchst, ist ein neuer Hoster, bei dem du auch Webspace haben kannst. Damit würden sich deine hier geschilderten Probleme mit einem Schlag erledigt haben.
Tschö, Auge
Hallo Jonny,
Ich habe eine Domäne gekauft und dort wird
unsichtbare Weiterleitung angeboten. Es ist also nichts weiter als
ein Frameset, der aus einem Frame besteht. Den Verweis auf den Frame
darf ich ändern, aber sonst weiter nichts. Speicherplatz ist auch nicht
drin und kein FTP.
Dann hast du nach meiner Definition keine Domäne gekauft.
Meine Idee ist: den Speicherplatz bei mir auf dem Computer
zu verwenden und darauf(IP-Adresse) zu verweisen. So würde dann immer
in der Adresszeile mein Domain-Name stehen.
Auch das ist ein gravierender Nachteil. Man kann keine Bookmarks setzen.
wenn der User manuell ein Link, der auf meine Seite verweist, im neuem
Fenster öffnet. Also, es geht mir hier nicht um die Navigation, sondern
darum, dass der User in diesem Fall in der Adresszeile eine IP-Adresse
bekommt. 1.tens ist es nicht schön und 2.tens kommt der User nicht mehr
auf meine Seite, falls er es als Link gespeichert hat, da die IP sich
inzwischen vielleicht schon geändert hat.
Das beheben DynDNS oder ein ähnlicher Anbieter.
Höchstwahrscheinlich muss ich mir in dem Fall die Arbeit machen und
im PHP folgendes schreiben:print "<script language='JavaScript'>";
print "document.write('html-Inhalt');";
print "</script>";
Ohje, das wir ja immer schlimmer. ;-) Damit schließt du alle Besucher aus, denen JavaScript nicht zur Verfügung steht, was gern gesehene Suchmaschinen-Bots inkludiert. Außerdem bedeutet das einen enormen Arbeitsaufwand und bringt eine erhöhte Fehleranfälligkeit mit sich.
In diesem Fall wird der Script nicht ausgeführt, wenn er abgeschaltet ist.
Und der Teil <noscript> wird angezeigt, in dem dem User gesagt wird, dass
er die Seite auf dem anderem Weg erreichen soll.
Sehr gut, das ist eine sinnvolle Alternative. Allerdings nur, wenn du den Inhalt damit vollständig abbildest.
Also, ich brauche ein nicht existierenden Html-Tag <yes_script>
Das existiert in der Form <script>.
damit ich bei PHP nicht so viel schreiben muss.
Und noch eine Stelle, an der du mehr Aufwand treiben musst.
Vielleicht kann mir einer sagen, wie ich mein Problem, ohne soviel Aufwand, lösen kann?
Das scheint mir die einzig vernünftige Lösung zu sein. Speicherplatz kostet fast nichts mehr. Rechne die Zeit dagegen, die du damit verbringst, Krücken zur Behebung des aktuellen Zustands zu basteln. Die paar monatlichen Euros dürften sich schnell amortisieren.
Grüße
Roland