Hur stänga alla popup med 1 klick?

PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
kungmats



Medlem i: 6260 dagar
Från: Falun
Status: Offline



#742668
Inlägg Skrivet: 2019-10-28 16:53      Ämne: Hur stänga alla popup med 1 klick? Citera

Hej

Den här funktionen öppnar alla fönster med ett klick men jag vill också kunna stänga alla öppnade fönster med ett enda klick men det är endast det sista som stängs. Hur kan jag lösa det?

KOD:
1:
<script>
2:
var myWindow;
3:
 
4:
function openWin() {
5:
myWindow = window.open("http://www.com", "newwindow1", "width=100, height=200, top=0");
6:
myWindow = window.open("http://www.com", "newwindow2", "width=100, height=200, top=270");
7:
myWindow = window.open("http://www.com", "newwindow3", "width=100, height=200, top=540");
8:
myWindow = window.open("http://www.com", "newwindow4", "width=100, height=200, top=810");
9:
}
10:
 
11:
function closeWin() {
12:
  myWindow.close();
13:
}
14:
</script>
15:
 
16:
<button onclick="openWin()">Open</button> <button onclick="closeWin()">Close</button>
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Peppe L-G



Medlem i: 4638 dagar
Från: Mullsjö
Status: Offline



#742669
Inlägget är accepterad som det rätta svaret Skrivet: 2019-10-28 17:53      Ämne: Citera

Du måste spara windows-objekten du får i olika variabler, och sedan anropa clode() på dem alla. Det bästa vore att spara dem i en array, och loopa igenom den när du stänger dem.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
kungmats



Medlem i: 6260 dagar
Från: Falun
Status: Offline



#742670
Inlägg Skrivet: 2019-10-28 20:29      Ämne: Citera

Tack för spark i rätt riktning.
Nu har jag dom i en array tror jag men får inte till någon close.

Jag hittade detta och labbade lite med men kommer inte i mål.

Måste jag loopa igen för att stänga? ... fattar inte.

mvh

KOD:
1:
var popupWindowsArr = new Array();
2:
 
3:
function popupClicked() {
4:
    var title = "Test -" + popupWindowsArr.length;
5:
    var wndID = window.open("http://www.google.com", "title1", "height=200,width=200,top=0");
6:
    var wndID = window.open("http://www.google.com", "title2", "height=200,width=200,top=300");
7:
    popupWindowsArr.push(wndID);
8:
    for(var i = 0; i < popupWindowsArr.length; i++) {
9:
        popupWindowsArr[i].focus();       
10:
    }
11:
}
12:
 
13:
<input type="button" value="Popup" onclick="return popupClicked();"/>
14:
<input type="button" value="Close" onclick="close();"/>
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
harald_b
Moderator



Medlem i: 4895 dagar
Från: Tavesta
Status: Offline



#742671
Inlägg Skrivet: 2019-10-28 23:39      Ämne: Citera

Ja, du måste loopa.
Men du behöver inte loopa för att sätta fokus, eftersom det inte är meningsfullt att sätta fokus på mer än ett element i taget.

Tänk på att var wndID på rad 6 skriver över var wndID från rad 5, så det blir bara den från rad 6 som sparas i arrayen.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
kungmats



Medlem i: 6260 dagar
Från: Falun
Status: Offline



#742672
Inlägg Skrivet: 2019-10-29 11:20      Ämne: Citera

Tack för hjälpen.
Jag gav dock upp och löste det så här istället

KOD:
1:
<script>
2:
  function openWin() {
3:
    myWindow = window.open("", "myWindow", "width=200,height=100");
4:
    myWindow2 = window.open("", "myWindow2", "width=200,height=200");
5:
  }
6:
 
7:
  function closeWin() {
8:
    myWindow.close();
9:
    myWindow2.close();
10:
  }
11:
 
12:
</script>
13:
<button onclick="openWin()">Open "myWindow"</button>
14:
<button onclick="closeWin()">Close "myWindow"</button>
15:
 
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
harald_b
Moderator



Medlem i: 4895 dagar
Från: Tavesta
Status: Offline



#742673
Inlägg Skrivet: 2019-10-29 13:12      Ämne: Citera

Det ser ut som en enkel och bra lösning.

När jag tittar efter så ser det ut att finnas ytterligare problem med den gamla lösningen, utöver vad jag påpekade förut.
 

_________________
R.r - Ett fritt affärssystem
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » HTML/CSS/JavaScript/Design
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic