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 ?
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)
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");
}
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.