gruss Christian, hallo Dogfish, hi struppi,
Struppi schrieb:
Wenn du dem Fenster immer den gleichen Namen gibst, sollte es sich nur einmal öffnen.
Struppi hat recht;
im folgenden beispiel wurde versucht,
einen wuergaround ueber top.frames.length
hinzubekommen, was leider zum scheitern
verurteilt war - das ueber ein target-
attribut zu referenzierende remote-fenster
wird also in jedem fall geoffnet - nur:
solange es existiert, faellt dies dem
betrachter nicht auf - uebergibt man
jetzt noch die entsprechende URL, sieht
das ganze wie ein normaler seitenwechsel
aus - beispiel:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-script-type" content="text/javascript" />
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>istFensterOffen.html</title>
<script type="text/javascript">
<!--
urlArray = [["http://selfaktuell.teamone.de"],["http://selfhtml.teamone.de"],["about:blank"]];
if (window.opera) {urlArray[2] = "opera:blank";}
function openWindow(targetHref,targetName) {
if (top.frames.length >= 1) {
if (frames[targetName]) {
alert("ein frame/fenster dieses namens existiert schon");
} else {
alert("else-zweig: frames["+targetName+"]");
window.open(targetHref,targetName,"");
}
} else {
alert("else-zweig: top.frames.length["+top.frames.length+"]");
window.open(targetHref,targetName,"",true);
}
}
function runApplication() {
alert("top.frames.length = " + top.frames.length);
if (frames.length >= 1) {
var targetNames = "auf diese frame- bzw.\ntarget-namen kann\nzugegriffen werden:\n";
for (var i=0;i<frames.length;i++) {
targetNames += "\n" + frames[i].name;
}
alert(targetNames);
}
var randomNumber = Math.floor(Math.random()*3);
randomNumber = ((randomNumber == 3) ? (2) : (randomNumber));
openWindow(urlArray[randomNumber],"remoteWin");
setTimeout("location.reload(true)",5500);
}
//-->
</script>
<style type="text/css">
<!--
body {
margin-left : 0px;
margin-top : 0px;
margin-right : 0px;
margin-bottom : 0px;
font-family : verdana,geneva,helvetica,arial,sans-serif;
font-size : 0.8em;
color : #000000;
}
.floatLeft {float : left;}
div.borderColumn {width : 20%;}
div.contentColumn {width : 60%;}
//-->
</style>
</head>
<body onload="runApplication()" bgcolor="#f5f5f5" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0">
<div id="content" name="content" style="width:100%">
<div id="leftColumnt" name="leftColumnt" class="borderColumn floatLeft"> </div>
<div id="middleColumn" name="middleColumn" class="contentColumn floatLeft">
<br /><br /><br />
Dogfish: (JAVASCRIPT) GeP (ganz einfaches Problem): Ist Fenster offen?<br />
<br />
Die folgende Nachricht zum Thema stammt von: Dogfish, Candid.Dauth@web.de, 14. Dezember 2002, 13:55<br />
http://dogfish-unstable.net.tc<br />
<br />
<br />
Hallo ihr da draußen,<br />
<br />
Ich habe ein gaaanz einfaches JavaScript-Problem. Ich will überpr¨fen, ob ein Fenster geöffnet ist, wenn nicht dann will ich es öffnen. Ich dachte an so was:<br />
<br />
if(!meinfenster)<br />
open("inhalt.html", "meinfenster");<br />
<br />
Nur das funktioniert nicht, da öffnet er das Fenster immer. In SelfHTML hab ich zu dem Thema auch irgendwie nix gefunden, da gibt es ja bei der Referenz keine Kategorie "meinfenster" d;-)==><br />
<br />
<br />
Weiß jemand Rat?<br />
<br />
<br />
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de),<br />
Dogfish<br />
-- <br />
Let's close our eyes and see what happens<br />
<br />
(http://dogfish.net.tc / http://dogfishus.net.tc)<br />
</div>
<div id="rightColumn" name="rightColumn" class="borderColumn floatLeft"> </div>
</div>
</body>
</html>
by(t)e by(t)e - peterS. - pseliger@gmx.net