---
title: "Stänga en popup"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/104017-stänga-en-popup"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "paraxe"
published: "2004-05-21T09:01:46.000Z"
updated: "2004-05-24T13:15:23.000Z"
replies: 14
views: 506
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/104017-stänga-en-popup"
---

# Stänga en popup

## #1 — paraxe, 2004-05-21T09:01Z

Hej

Jag har ett script som kan vara tungladdat.

Så därför öppnar jag en popup som ber användaren att ha tålamod.

Popupen öppnar jag på knappen som triggar scriptet:

```
function alertWindow(url, windowName, myHeight, myWidth)
        {
        window.open(url,windowName,"scrollbars=1...osv...
```

 

När scriptet är klart skriver jag ut \<body\> taggen och kan således köra en body onLoad. 

Men vad skriver jag för att stänga popupen som jag öppnade?

Mvh

Pär

Permalänk: https://www.webforum.nu/p/104017

## #2 — Jesper T, 2004-05-21T09:06Z

self.close()

Permalänk: https://www.webforum.nu/p/1351900

## #3 — paraxe, 2004-05-21T09:13Z

Jesper: 

Då stängs ju scriptet som gör beräkningarna..

Jag vill stänga popupen som scriptet öppnade.

Mvh 

Pär

Permalänk: https://www.webforum.nu/p/1351907

## #4 — Jesper T, 2004-05-21T09:24Z

Ok, men om du öppnar ex så här:
alertWindow('sida.htm', 'myWindow', 500, 600);
så kan du kanske stänga med:
window.myWindow.close();

Permalänk: https://www.webforum.nu/p/1351912

## #5 — paraxe, 2004-05-21T09:34Z

Så här ser koden ut för att öppna popupen.

```
onclick=" alertWindow(sida.asp', mittNamn, 300, 100);
```

 

Kör jag window.mittNamn.close(); -\> får jag att mittNamn är null eller inte ett objekt.

Mvh

Pär

Permalänk: https://www.webforum.nu/p/1351917

## #6 — Jesper T, 2004-05-21T09:47Z

```
var windowName;
function alertWindow(url, myHeight, myWidth)
        {
       windowName= window.open(url, "windowName" ,"scrollbars=1 osv...")
		}
```

Permalänk: https://www.webforum.nu/p/1351920

## #7 — paraxe, 2004-05-21T12:07Z

Jesper har du testat denna kod?

/pär

Permalänk: https://www.webforum.nu/p/1351991

## #8 — Jesper T, 2004-05-21T16:17Z

Ja, visst. Funkar kanoon.

Permalänk: https://www.webforum.nu/p/1352065

## #9 — paraxe, 2004-05-24T07:19Z

Hej igen.

Jag får fortfarande inte det att fungera.

Jag har kontrollerat att fönstret jag öppnar heter "windowName".

Med koden:

```
document.write("fönstret heter: "+window.name
```

 

Så här ser koden ut för att stänga fönstret.

```
<script>
window.onload = window.windowName.close()
</script>
```

 

felmess: window.windowName är Null eller inte ett objekt.

Mvh

Pär

Permalänk: https://www.webforum.nu/p/1352991

## #10 — Jesper T, 2004-05-24T08:36Z

```
<script type="text/javascript">
<!--
var windowName;
function alertWindow(url, myHeight, myWidth)
        {
       windowName = window.open(url, "windowName" ,"scrollbars=1 height="+ myHeight +" width="+ myWidth +"")
	}
window.onload = windowName.close();
//-->
</script>
```

Permalänk: https://www.webforum.nu/p/1353015

## #11 — icaaq, 2004-05-24T10:04Z

Jag tar över detta problem ;)
Vi har dessa två funktioner i Javascript.js

```
[red]
		function alertWindow(url, myHeight, myWidth)
		{
		window.open(url,"sendingMails","scrollbars=1,resizable=1,width="+ myHeight +",height="+ myWidth +",left=300,top=200");
		}
		
		function closeAlertWindow()
		{
		window.sendingMails.close()
		}
[/red]
```

Följande händer.
1\. På en button körs detta.

```
[red]
<input type="button" name="action" value="Skicka nyhetsbrev" onclick=" alertWindow('alertSending.asp', 300, 100); location.href='sendNewsletter.asp?nlid=1';">
[/red]
```

2\. i sendNewsletter.asp finns detta

```
[red]
<html>
<head>
<script language="javascript" src="/inc/Javascript.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
window.onload = closeAlertWindow()
//-->
</script>
</head>
</html>
[/red]
```

Men jag får window.sendingMails är null eller inte ett objekt

Men om jag som sagt skriver ut fönsternamnet i popupen så här

```
[red]
<script>
document.write("fönstret heter: "+window.name)
</script>[/red]
```

så skriver den ut att fönstret heter : fönstret heter: sendingMails

Vad fasiken vara fel??

mv icaaq

Permalänk: https://www.webforum.nu/p/1353044

## #12 — icaaq, 2004-05-24T11:35Z

Kan jag på något sätt felsöka detta? Jag hade nån tanke på att om man kunde loopa igenom alla fönster som fanns i JavaScript. Och då se om fönstret finns ?

mv icaaq

Permalänk: https://www.webforum.nu/p/1353084

## #13 — nitro2k01, 2004-05-24T12:54Z

Du kan inte bara skriva window.objektnamn. Precis som ovan måste du tilldela en fönsterreferensen (= Det som window.open skickar tillbaka) till en variabel och använda detta. En korrekt kod kan t ex se ut så här:

```
 
	[b]tempWin = null;[/b]
	function alertWindow(url, myHeight, myWidth)
	{
	[b]tempWin = [/b]window.open(url,"sendingMails","scrollbars=1,resizable=1,width="+ myHeight +",height="+ myWidth +",left=300,top=200");
	}

	function closeAlertWindow()
	{
	[b]if (tempWin)
	if (!tempWin.closed)
	tempWin.close()[/b]
	}

	window.onload = [b]closeAlertWindow[/b];
```

 

Sen en kommentar på flerapersoners "window.onload ="-rader. Man ska inte ha med () på slutet när man skriver så.

Har man med () på slutet så körs funktionen, och window.onload sätts till det eventuella värde som returneras från funktionen.

Har man inte med () på slutet så skapas en referens till funktionen och läggs som window.onload (Vilket är det man normalt vill)

Permalänk: https://www.webforum.nu/p/1353128

## #14 — nitro2k01, 2004-05-24T13:02Z

Woops, icaaq, ser nu ett annat problem. Du försöker komma åt fönstret från en ny sida, då är ju alla gamla javascript-variabler borta... Så då kan man göra så här istället:

```
 
// Första sidan
function alertWindow(url, myHeight, myWidth)
{
window.open(url,[B]"sendingMails"[/b],"scrollbars=1,resizable=1,width="+ myHeight +",height="+ myWidth +",left=300,top=200");
}
```

 

```
 
// sendNewsletter.asp 
window.onload = function()
{
winRef = window.open("about:blank", [B]"sendingMails"[/b]);
winRef.close();
}
```

 
På detta sätt kan du kolla genom alla fönster för att se om det finns ett fönster vid namn sendingMails. Gör det det skapas en referens till fönstret i winRef, som du sedan kan stänga. 

Nackdelen med denna metod är att om fönstret inte fanns sedan innan kommer ett nytt fönster att skapas, vilket dock inte spelar någon roll här eftersom det ändå ska stängas direkt efteråt.

Permalänk: https://www.webforum.nu/p/1353136

## #15 — paraxe, 2004-05-24T13:15Z

Uppskattningen kan ej beskrivas med ord.

Men ett tack är en bit på vägen!

Så,

\- Tack

Hälsningar Pär och Icaaq

Permalänk: https://www.webforum.nu/p/1353144

---

Tråden på webben: https://www.webforum.nu/amne/javascript/104017-stänga-en-popup
