webForumDet fria alternativet

Hur fungerar window.closed ?

14 svar · 588 visningar · startad av mattiasnordin

mattiasnordinMedlem sedan maj 20012 080 inlägg
#1

Är det någon som har något exempel på kod som innehåller window.closed?

Har hittat det i diverse referensverk men hittar inga exempel. Jag får det inte att fungera.

PeeerMedlem sedan mars 20025 907 inlägg
#2

För att stänga en sida när besökaren kommer in på den

<script language="JavaScript">
window.close();
</script>

För att stänga fönster vid klick på länk

<a href="#" class="link" onclick="window.close()">Stäng fönstret!</a>
mattiasnordinMedlem sedan maj 20012 080 inlägg
#3

Tack men det var inte window.close() jag menade. Utan windows.closed ;)

---- från devguru.com ---
closed Property:
This property is used to return a Boolean value that determines if a window has been closed. If it has, the value returned is true.

Syntax: window.closed
-------------------------

När får man window.closed att returnera TRUE ?

Jesper TMedlem sedan nov. 20017 144 inlägg
PeeerMedlem sedan mars 20025 907 inlägg
#5

mattiasnordin skrev:

Tack men det var inte window.close() jag menade. Utan windows.closed ;)

Så går det när man inte läser frågan riktigt :r :D

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Om du öppnar ett fönster med foo=window.open(...osv så kan du senare kolla om fönstret är stängt med if(foo.closed) eller om det fortfarande är öppet if(!foo.closed)

AsaMedlem sedan dec. 20011 860 inlägg
#7

Förklara bättre hur man ska skriva tack i en function!

Om BLABLA är öppen
---Gör detta
Annars
---Detta

Tex om den ej e öppen så öppna en popup med denna:

window.open("privat.asp?namn=<%=FolderName%>","Message<%=FolderName%>","width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")">

JojoxxMedlem sedan juni 20004 308 inlägg
#8

Enklast är nog att förklara med en sån här funktion. Om fönstret aldrig har varit öppnat, eller om det varit öppnat men nu är stängt så öppnas ett nytt fönster och en sida laddas, om fönstret är öppat och finns kvar laddas sidan där istället.

<a href="#" onClick="JustDoIt('http://www.yahoo.se');">Yahoo?</a>
<script language="JavaScript" type="text/javascript">
myWin=false;
function JustDoIt(url){
	if(!myWin||myWin.closed){
		myWin=window.open(url)
	} else {
		myWin.location.href=url;
	}
}
</script>
AsaMedlem sedan dec. 20011 860 inlägg
#9

Okej men en OnLoad då? Hur skriver man det? Och om den är öppnad ska den ej laddas om alls!

JojoxxMedlem sedan juni 20004 308 inlägg
#10

Då blir det nåt sånt här;

<script language="JavaScript" type="text/javascript">
myWin=false;
function JustDoIt(url){
	if(!myWin||myWin.closed){
		myWin=window.open(url)
	}
}
</script>

och onLoad="JustDoIt('http://www.yahoo.se');"

mattiasnordinMedlem sedan maj 20012 080 inlägg
#11

Joxx är kung!

Man tackar artigast. :r
Det fungerar precis som jag vill...

mattiasnordinMedlem sedan maj 20012 080 inlägg
#12

Hur fungerar då egenskaperna som man kan ge fönstret?

-----
window.open('create_list.asp', 'foo', 'width=840,resizable=yes, scrollbars=yes', 'bReplace=true');
-----

Hur får jag fönstret som öppnas att få egenskaperna ovan?

JojoxxMedlem sedan juni 20004 308 inlägg
#13

Det är bara att slänga in det efter window.open. window.open använder 3 parametrar; url, targetnamn och fönsteregenskaper. Alltså;

myWin=window.open('create_list.asp', 'foo', 'width=840,resizable=yes, scrollbars=yes');

bReplace=true verkar vara något MS-specifikt som jag bara hittar i samband med C++, så det plockade jag bort :)

Eftersom url'en är "hårdkodad" i ditt exempel behöver du inte skicka med den när du anropar funktionen. JustDoIt() räcker alltså.

mattiasnordinMedlem sedan maj 20012 080 inlägg
#14

Tack. Även det fungerar utmärkt.
Problemet jag får är att det inte går att öppna ett nytt fönster med samma namn som ett tidigare fönster. Jag har även svårt att använda ditt tidigare exempel då jag försöker öppna fönstret från en sida som inte inehåller orginallänken, dvs skriptsidan laddas om varje gång en länk trycks. No big deal. Jag är nöjd med hur det fungerar nu. Det räcker att ta bort namnet ur följande. Då öppnas ett nytt fönster varje gång jag kör följande kodsnutt.

myWin=window.open('create_list.asp', '', 'width=840,resizable=yes, scrollbars=yes');

:P

PS
bReplace=true ska ha något med hur MSiE hanterar historylistan. Den behövs inte utan jag experimenterade bara lite.
DS

JojoxxMedlem sedan juni 20004 308 inlägg
#15

Det är inte meningen att man skall kunna öppna flera fönster med samma namn, så det fenomenet är "by design". Annars skulle webbläsaren inte veta vilket fönster en länk skall laddas i om du använder target="tjohej" om det finns fler fönster med det namnet. Men du har ju redan kommit på hur man kommer runt det problemet :)

129 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)