nochma zum opener window-fehlermeldung IE
alain
- javascript
seit gegrüsst,
Ich hab da ein problem und zwar folgendes: Nehmen wir an ich öffne von einem haubtfenster ein zweit fenster per window.open dieses zweit fenster wird per refresh auf eine andere seite weitergeleitet, während das haubtfenster im hintergrund per onload von der weitergelteten seite wieder auf die haubtseite zurück geht ebenfalls im hintergrund bleibt. Nun das problem ist folgendes ,wenn die hintergrund seite nun nicht mehr existiert oder vom user bereits geschlossen wurde,dann gibts eine fehlermeldung. window.opener ist null oder kein objekt. Wie könnte man diesen befehl per if abfrage definieren?
Im Moment sieht diese javaform so aus:
function zurHaubtseite()
{ void(opener.location.href="http://www.haubtseite.de");opener.blur(); window.setTimeout("navi.close()",50000);};
das ist der onload befehl vom zweitfenster (oben).
das script könnte in etwa so aussehen: function zurHaubtseite()
if(opener.open == true){ void(opener.location.href="http://www.haubtseite.de");opener.blur(); else zweiteseite();window.setTimeout("navi.close()",50000);};
function zweiteseite()
navi = open("http://zweitseite.de","navi");
Das zweite problem wäre nun, dass in der zweiten seite der onload drin steht. Schönen gruss alain
Diese script funtzt leider auch nicht
Es geht einfach nur darum ob das haubtfenster da ist oder nicht,
falls es da sein sollte ,sollte das zweit fenster geschlossen werden und die haubtseite
soll zum anfang,falls es nicht da ist (bereits geschlossen) dann sollte das zweitfenster
auf die haubtseite zurück.
Und hier das script das aber zur zeit nicht funktioniert ausser den fehlermeldungen:
function haubtseite()
{
var opener = "index.html";
if(opener.closed == true){self.location.href="index.html";}
else
{opener.location.href="index.html";window.close();}};
Hallo Alain
function haubtseite()
{
var opener = "index.html";
if(opener.closed == true){self.location.href="index.html";}
else
{opener.location.href="index.html";window.close();}};
In diesem Zusammenhang ist opener eine Variable vom Typ String und kennt nicht die Eigenschaft closed.
Ob der opener existiert bekommst du mittels if (opener) heraus.
Hintergrund:
opener ist eine Fenstereigenschaft, die auf ein Objekt zeigt. Existiert dieses Objekt nicht, so kannst du natürlich keine Eigenschaften des Objektes abfragen.
Mit if (opener) prüfst du, ob in der Eigenschaft opener etwas anderes als null gespeichert ist. Erst wenn dies zutrifft, kannst du auf andere opener-Eigenschaften und Methoden zugreifen und diese ändern.
Viele Grüße
Antje
hallo Antje
danke für den tip,
könnte man in dem fall mit if abfragen ob opener null ist und dann
ein zweit bzw. dritt seite aufrufen?
zum B.s.p so:
also die funktion haubtseite() wird auf der zweiten seite per onload
aufgerufen:
function haubtseite(){
if (opener){opener.location.href="http://haubtseite";
setTimeout("window.close()",5000);}
else if
(opener == null);navi();window.close();};
function navi()
{
navi = open("http://haubtseite","drittfenster");
};
so gehts
function navi()
{
navi = window.open("zweitHAUBTseite.htm","navi");navi.blur();
};
function haubtseite(){
var navigation = "haubtseite.htm";
if (opener)opener.location.href="haubtseite.htm"
else if
(navigation)navi();
else
location.href="haubtseite.htm";setTimeout("window.close()",50000);};
das drittfenster ging im fensternamen "navigation" (wie das zweitfenster auch)
auf und lädt wieder die haubtseite im hintergrund von dem aus
das zweit und drittfenster aufging.
Wenn das haubtfenster in der zwischenzeit aber geschlossen wurde
und nur noch das drittfenster da ist,muss das haubtfenster neu geladen werden
(hintergrund)und das aktuelle fenster(drittfenster)
schliessen nach ner gewissen zeit.
So funtzt es
gruss alain*derseitstundengrübelte*