---
title: "Popupkoll"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/55297-popupkoll"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Asa"
published: "2002-10-07T07:12:03.000Z"
updated: "2002-10-11T06:38:43.000Z"
replies: 14
views: 500
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/55297-popupkoll"
---

# Popupkoll

## #1 — Asa, 2002-10-07T07:12Z

1\. Hur kollar man om en popup redan är öppen? Om den är öppen ska inte popupen laddas om!

2\. Finns det nåt sätt att få ett lager att döljas efter ex 10 sekunder!
Har denna kod för att stänga lagret:

```
function Lay(check){
	var lay;
	if (!document.checking){
		if (document.getElementById) lay = document.getElementById(check).style;
		else if (document.all) lay = document.all[check].style;
		lay.visibility = "hidden";
	}else{
		lay = document.checking[check];
		lay.visibility = "hide";
	}
}
```

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

## #2 — dectgap, 2002-10-07T15:22Z

För att sätta igång en javascript-funktion efter en viss tid använder du setTimeOut(funktion,n); där funktion=den funktion (eller vad man nu vill ha) som ska köras i form av en sträng, och n=antal millisekunder som ska gå tills funktion ska köras.

T.ex.:
\<body onload='javascript: setTimeOut("Lay(någonting)", 10000);'\>

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

## #3 — Asa, 2002-10-07T21:43Z

Nån som vet om det går att kolla om en popup är öppen?? Hur skriver jag!

Använder denna att öppna med:

```
   <script language=javascript>
   <!--
   window.open("privat.asp?mem_id=<%=RS("mess_from")%>","<%=RS("mess_id_name")%>","width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")
   //-->
   </script>
```

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

## #4 — Jesper T, 2002-10-07T22:15Z

<http://www.webforum.nu/showthread.php?s=&threadid=52312>
Där ser det ju ut som om du fick ett svar på den frågan, eller?

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

## #5 — Asa, 2002-10-08T05:24Z

Visste jag sett det nånstans! Men inge klokare! Blev inte det förut heller kom jag på!

Koden som öppnar en popup ifrån en länk ser ut så här:

```
function Mess(mess_id) {
	remote = window.open( "", "INSTMESS" + mess_id, 'width=450,height=300,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizeable=1,compyhistory=0' );
	remote.location.href = 'privat.asp?mem_id=' + mess_id;
}
```

Och koden som kollar om man fått nå mess ser ut så här:

```
Set RS = Conn.Execute("Select * From chat Where mess_to=" & Session("UserId") & " And mess_to_read=false Order By id desc")
If RS.EOF Then%>
<%Else%>
   <script language=javascript>
   <!--
   window.open("privat.asp?mem_id=<%=RS("mess_from")%>","INSTMESS<%=RS("mess_id_name")%>","width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")
   //-->
   </script>
<%End If
Set RS = Nothing
```

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

## #6 — dectgap, 2002-10-08T15:25Z

Åsa... det är god sed att lämna någon kommentar till de svar man får. Antingen säger man "Tyvärr, men det fungerade inte" eller "Tack, det fungerade."

Att bara ignorera är oförskämt.

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

## #7 — Asa, 2002-10-08T16:28Z

Jag får inget å funka av det jag såg på sidan! Vet inte hur jag ska kombinera det med min kod!

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

## #8 — Jojoxx, 2002-10-08T17:19Z

Vi börjar med att hoppa över ASP-koden utan koncentrerar oss på JavaScript-biten. Titta alltså på koden från webbläsarens "Visa källa" istället.

När du öppnar en popup ger du den ett "handtag" med foo=window.open... I foo har du då en objekt-referens som du kan använda. Om det är osäkert om fönstret öppnas eller inte (beroende på olika villkor eller användarens interaktion) bör du först definera handtaget som en variabel så att du kan kolla den senare (försöker du kolla en odefinierad variabel kommer du att få ett felmeddelande). Därför definierar vi den först med;

var foo=false;

Detta skall alltså ALLTID ske, oavsett om fönstret sedan skall öppnas eller inte. Sedan kollar du om fönstret är öppnat eller inte med;

if(foo && !foo.closed){

Översatt till svenska;

om(foo OCH INTE foo.ärStängt){

Hoppas det förklarade scriptet lite.

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

## #9 — Asa, 2002-10-08T18:22Z

Hmm mena du att jag ska skriva så här? Isåfall funkar det ej! Den laddar om hela popupen hela tiden! byter jag plats på foo=.. i första koden händer inget alls! 

```
   <script language=javascript>
   <!--
   var foo=false;
   if(foo && !foo.closed){ 
   }else{
   foo=window.open("privat.asp?mem_id=<%=RS("mess_from")%>","INSTMESS<%=RS("mess_id_name")%>","width=450,height=300,scollbars=yes,loaction=no,status=no,toolbar=no")}
   //-->
   </script>
```

och

```
function Mess(mess_id) {
       var foo=false;
	foo = window.open( "", "INSTMESS" + mess_id, 'width=450,height=300,toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizeable=1,compyhistory=0' );
	foo.location.href = 'privat.asp?mem_id=' + mess_id;
}
```

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

## #10 — Jojoxx, 2002-10-08T18:33Z

Nej... inte så.

Först lägger du ett script-block som ovillkorligen (alltid) körs (ex i head, alltså före all annan popup-relaterad scriptkod);

\<script language="JavaScript" type="text/javascript"\>
var foo=false;
\</script\>

Vi kan säga att detta talar om att "fönstret" **foo** inte har öppnats.

Sedan någon annanstanns på sidan öppnar du ett fönster med;

foo=window.open(...

Det vi gör nu är alltså att vi öppnar ett fönster och lägger referensen till det i variabeln **foo**.

För att sedan kolla om foo är öppnat kan vi använda;

if(foo){

eller om det är öppnat OCH inte sedan stängt;

if(foo && !foo.closed){

Försvenskning;
var foo=false; // Vi har ett fönster, men det är stängt
foo=window.open(... // Vi har ett fönster som vi öppnar
if(foo && foo.closed){ // Vi hade ett fönster, men det är nu stängt

Observera skillnaden mellan foo.closed (stängt) och !foo.closed (INTE stängt).

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

## #11 — Asa, 2002-10-10T22:00Z

Jag får dock inte till det! Men får stå ut me det som det är :/

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

## #12 — mikkeX, 2002-10-10T22:05Z

Om du kan ge oss en länk så kanske vi kan hjälpa dig ändå...

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

## #13 — Asa, 2002-10-11T00:11Z

Här ligger chatten där jag vill kolla om den redan är öppen! Dock har jag ändrat tillbaka som det var!

<http://www.snygging.nu/chat2/>

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

## #14 — Jojoxx, 2002-10-11T05:36Z

Problemet är att du byter sida när du loggar in (kanske inte byter, men laddar om). Detta gör att foo nollställs. Jag skulle föreslå att när du klickar på logga in-knappen så öppnar du popup-fönstret och sköter inloggningsförvarandet därifrån (utan att byta sida i det första fönstret). När du sedan kört login-funktionen i popup-en kan du uppdatera med den sidan som fungerar som chat.

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

## #15 — Asa, 2002-10-11T06:38Z

Det är popupen för privatchattningen som den ska kolla om den är öppen! Första popupen heter inte foo utan de som skapas vid klick på en chattare!

Kanske är samma problem iallafall :/ ??

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/55297-popupkoll
