WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   frames (http://www.wcm.at/forum/showthread.php?t=174418)

jak 21.09.2005 14:49

Zitat:

Frames sind mMn nicht pfui, sondern die Technik wird einfach (zu) oft falsch eingesetzt.
Die Technik hat einige Mängel die nicht durch falschen Einsatz begründet sind, sondern einfach so sind (im HTML - Standard). Insbesondere das Framesets "keine Urls haben" (die deeplink-Problematik) kann man nicht durch einen anderen/besseren Einsatz vermeiden (außer vielleicht mit JavaScript, aber das ist wohl kaum Sinn der Sache).

Zitat:

Frames verwende ich auch ungern, aber ein Problem hatte ich mal, wo ich bislang noch immer keine Alternativ gefunden habe zu Frames: ein Objekt am unteren Rand des Browserfensters setzen.
Wie schon erwähnt, position:fixed wäre die Lösung, aber rat mal welcher Browser das nicht unterstützt...

IMHO gibt es natürlich Anwendungen wo man Frames verwenden darf:
- Wenn es nur einem "Zusatznutzen" dient (d.h. ein nettes Feature, aber die Seite funktioniert auch ohne). Beispiele dafür sind - wie schon gepostet - JavaDoc, aber z.B. auch der SelfHTML quickbar. Und wenn sogar SelfHTML frames verwendet...
Eine andere Möglichkeit die mir einfalen würde wäre eine fixe "Titelzeile" bei großen Tabellen.
- Wenn es nicht anders geht oder es auf andere Weise ein erheblicher Mehraufwand wäre. Wobei die Frage ist ob z.B. eine Leiste wirklich immer unten angezeigt werden muß. Oft reicht es ja wenn sie am Unteren Ende der Seite ist.

jak

ruffy_mike 21.09.2005 15:58

Die Sache mit den deep-links stimmt sicher, wobei dies bei MANCHEN Webinhalten keine od. kaum eine Rolle spielt - bei größeren Daten- und Infoseiten ist dies natürlich sehr wohl ein Problem.

Ausserdem gibt es ja die Möglichkeit, zu überprüfen, ob die Frame-Seite im entspr. parent-Frame läuft, wenn nicht, wird dieser nachgeladen. Nicht gerade toll, aber so steht man bei direkten Aufrufen zumindest nicht im "Niemansland".

Dummerweise wird die Pseudo-Positionierung von CSS wie du richtig schreibst noch nicht wirklich gut umgesetzt. Ich habe mal eine Seite testhalber damit formatiert, je mehr man diese Technik verwendet, desto mehr kommt einem das Grauen. Die Unterschiede in der Darstellung zw. IE, Mozilla, Opera usw. sind gewaltig.

jak 21.09.2005 16:22

Zitat:

Original geschrieben von ruffy_mike
Ausserdem gibt es ja die Möglichkeit, zu überprüfen, ob die Frame-Seite im entspr. parent-Frame läuft, wenn nicht, wird dieser nachgeladen. Nicht gerade toll, aber so steht man bei direkten Aufrufen zumindest nicht im "Niemansland".

Das ist nur dann eine halbwegs gute Lösung wenn ein deeplink auf einen Frame das Frameset so lädt, das die Seite auf die ich wollte angezeigt wird, und nicht die Startseite (wäre mit JS möglich, macht aber keiner).

jak

ruffy_mike 21.09.2005 17:40

Zitat:

Original geschrieben von jak
Das ist nur dann eine halbwegs gute Lösung wenn ein deeplink auf einen Frame das Frameset so lädt, das die Seite auf die ich wollte angezeigt wird, und nicht die Startseite (wäre mit JS möglich, macht aber keiner).

jak

Genau das meinte ich, habe ich vor kurzem wo gesehen im net. Macht aber in der Tat so gut wie niemand, da hast du recht...

Sesa_Mina 21.09.2005 20:16

Auf Selfhtml steht irgendwo im javascript teil vergraben wie man den Inhalt zweier Frames gleichzeitig ändert.

und wie man ein frameset nachlädt lässt sich dort auch finden. musst nicht mal so tief danach graben :)

=> http://de.selfhtml.org

wallhall 22.09.2005 09:08

@Sesa_Mina, ich hab mich jetzt ein wenig in's java reingelesen ...

kommt mir schon ein wenig komplizierter als html oder css vor :) ich denke einmal wenn du damit täglich arbeitest ist es wahrscheinlich gans einfach, als "anfänger" ist es aber doch ein bisschen schwieriger .....

jak 22.09.2005 10:51

Java ist auf jeden Fall komplizierter als HTML+CSS hat aber auch nichts mit beidem zu tun. Es hat auch absolut nichts mit JavaScript zu tun, es heißt nur ähnlich sollte aber trotzdem nicht verwechselt werden ;).

JavaScript ist vom Konzept her einer ObjektOrientierten Sprache ähnlich: man hat es mit Objekten zu tun die Eigenschaften (Variablen) und Methoden (Funktionen) bereitstellen. Wenn man noch nie mit einer Programmier- oder Skriptsprache zu tun hatte ist es natürlich ungewohnt.

Zitat:

Auf Selfhtml steht irgendwo im javascript teil vergraben wie man den Inhalt zweier Frames gleichzeitig ändert.
Wie schon erwähnt: Der Freund heißt "parent", damit kann man dann auf alle anderen Frames zugreifen: http://de.selfhtml.org/javascript/ob...tm#allgemeines

jak

jak 22.09.2005 15:52

Zitat:

Original geschrieben von ruffy_mike
Ausserdem gibt es ja die Möglichkeit, zu überprüfen, ob die Frame-Seite im entspr. parent-Frame läuft, wenn nicht, wird dieser nachgeladen.
Das macht z.B. Microsoft im MSDN:

Code:

<form name="MNPFramesForm" method="post" target="_top" action="/pfadZurSeite/Seite.mspx">
</form>
<script language="javascript">
        var framesValid = false;
        var menuFrame = parent.frames["MNPMenuFrame"];
                if (menuFrame) { framesValid = true; }
        }
        if (!framesValid) document.forms["MNPFramesForm"].submit();
</script>

An sich find' ich die Idee mit der <form> ziemlich gut, ich würd's aber ein bischen anders machen:
Code:

<form name="frameForm" method="get" action="/frame.php">
<!-- oder:
<form name="frameForm" method="get" action="/frame.html">
-->
  <input type="hidden" name="frame">
  etc.
</form>
<script language="javascript">
if (!wirSindDasObersteFrame){
  var form = document.forms["frameForm"];
  form.frame = document.location.href
</script>

Entweder hat man dann ein frame.php daß die Anzeige erledigt oder man macht es mit JavaScript (Pseudocode):
Code:

<script>
var loc=window.location.search
Suche in loc nach 'frame=xyz'
Speichere 'xyz' in Variable a
Setze den Unterframe auf a:
document.frames['main'].location.href=a
</script>

Wäre auch ausbaufähig (frame1=a.html&frame2=b.html), mann bräuchte dann nur mehrere <input>s und müsste den String bei jedem & aufspalten.

jak

wallhall 23.09.2005 11:51

hallo jak,

das wird ja immer krasser ;) , am we werde ich mal versuchen ob ich es so zum laufen bekomme ...

:aio:


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag