Refresh bei Resize NN4 (frames)

Hi All,
also wenn ich meine Frames-Seiten im Netscape der Generation 4 resize, d.h. die grösse ändere :smile:, dann hauen alle meine ext. eingebundenen Style-Sheets ab! ich hab folgende versucht:

function nnreload(){
if (document.layers) {
onresize=document.reload()
break;
}
}

Den Break; brauch ich, damit sich der NN nicht aufhängt, denn er macht ne endlos-Schleife daraus. Wer weiss warum obiges beispiel nicht funktioiniert. PS: Dieser Block hängt im Header eines Framesets, also der Index-Datei die dann die Frames schnürt.

Grüsse

Hallo,

ich glaube der Netscape mag sowas nicht

onresize=document.reload()

was man sich in Javascript-Console anschauen kann.
Wenn, dann vielleicht so:

onresize=document.reload;

Asserdem hat das document-Object keine reload-Methode. Eher das location-Object. Fuer den Netscape halte ich mich immer an meine Entwicklung und die lautet so:

function regenerate()
{
window.location.reload();
}

if (window.document.layers) {
window.document.captureEvents(Event.RESIZE);
window.onresize = regenerate;
}

Das der Netscape bei einem Resize die StyleSheets wie StyleShit behandelt und alles boese durcheinanderwirbelt habe ich auch erfahren. Ich habe mir da einen sadomaso-Trick ausgedacht mit dem ich den netscape ordentlich festschnuerre :smile:

Man muss den gesamten Inhalt seiner Seite in verschachtelte Tabellen legen. Am besten auch die width und height von der table bzw. td/tr explizit setzten. align=„left“ sollte auch in der Tabelle stehen. Wenn ich eine Tabelle rechtsbuendig mit align=„right“ setze, dann haut er sie mir bei einem resize trotzdem um die Ohren und knallt sie nach links.

CU

hi na so ganz klappt es nicht, ich habe hier nämlich leider 3 frames. muss ich dann parent.location.reloaden oder?

sag mal heisst du ender? :smile:

cu
timur

Wow du bist ein Gott. Nein mein ich nicht blasphemisch, aber da können wir uns im forum philosophie nochmal treffen.

auf jeden funktioniert deine lösung obwohl ich überhaupt nicht deine library per .hs datei vorher einlese! wie geht das??? dieses captureEvent ist sehr wichtig oder…aber kapieren würd ichs gern…hilfst du mir?

window.document.captureEvents(Event.RESIZE);

also captureEvents ist eine Methode des document bzw. des window-objektes odeR? aber was ist mir Event.Resize, ist dass nicht etwas aus DEINER library???

aha

function regenerate()
{
window.location.reload();
}

if (window.document.layers) {
window.onresize = regenerate;
}

so gehts jetzt auch bei mir. dann ist deine library nur ne wasserdichte zusatzlösung oder???

trotzdem sehr genial

Hallo,

bei drei Frames kannst es auch ueber for-Loop machen wenn Du willst:

for (var i=0; parent.frames.length; i++) {
parent.frames[i].location.reload();
}
Es kommt aber immer drauf an, wo das Script steht. Wenn es in einem Frame als Child steht, dann muss Du natuerlich auf den Parent gehen. Steht es aber in der Datei, die das Frameset definiert, dann kannst du auch self verwenden.

Hast Du aber ein Frameset, in dem ein Frame widerum ein Frameset hat, dann gehst Du ueber Parent nur auf den naechst hoeheren Set, aber nicht auf den allerhoesten! Dann sollte man statt parent oder self eben top als Schluesselwort verwenden.

Andere Bezeichner fuer das window-Object je nach Situation und Aufbau sind:

parent --> naechst hoeheres Elternfenster
parent.frames[i] --> Kindfenster eines Parent
top --> TopMost Elternfenster (also das allerhoechste)
self --> selbst als Fenster
opener --> das Fenster das diese geoeffnet hat

CU

Nein,

captureEvents(), releaseEvents(), routeEvents() disableExternalCapture() (Fremdüberwachung verhindern)enableExternalCapture() sind ganz spezielle Features des NS4 und kennt der IE nicht. Aber nicht jedes Event muss man einfangen. onMouseover/out geht auch ohne Einfang.

Das gibt es :

Event.ABORT Event.BLUR Event.CHANGE Event.CLICK Event.DBLCLICK Event.DRAGDROP Event.ERROR Event.FOCUS
Event.KEYDOWN Event.KEYPRESS Event.KEYUP Event.LOAD Event.MOUSEDOWN Event.MOUSEMOVE Event.MOUSEOUT
Event.MOUSEOVER Event.MOUSEUP Event.MOVE Event.RESET Event.RESIZE Event.SELECT Event.SUBMIT Event.UNLOAD

Die Regel ist klar. Man schreibe dann das Event in lowercase und fuegt noch ein „on“ davor. Beispiel:

window.captureEvents(Event.KEYPRESS);
window.onkeypress = FunktionsName;

Steht aber einiges in selfhtml dazu drin…

CU

cool! ich hab mal gelesen, da hatte sich mintert oder war es schwarz, naja diese neue javascript workshop buch, ist nicht schlcht, auf jeden sagte da der author: ich verstehe nicht, warum manche menschen self und this verwechseln.

hmm ich schon, ich verwechseln das auch ständig…warum?

)

Nun,

self ist halt eine spezielle Bezeichnung des Window-Objektes, was fest in JS implementiert ist. Aber man kann ja auch eigene Objecte erzeugen. Und wenn diese dynamisch erzeugte Objekt sich selbst anspricht, dann macht man diese ueber this.

Beispiel:

function onGetOptionIdx(paramThis)
{
alert(paramThis.selectedIndex);
}

Bei einem onChange-Event uebergibt die selectBox sich selbst als Referenz an die Methode onGetOptionIdx. Mit diesem Verweis kann dann die Funktion onGetOptionIdx() an dem select-Element rumfuschen.

CU