Jag vill uppdatera ett fönster som jag inte har "tillgång" till..
Kan tänka mig att jag har ett fönster med javascript som i sin tur uppdaterar fönstret jag inte har "tillgång" till.
Testade lite men får inte till det.
Koden nedan "går" ju bara till fönstret.
Någon som har några tips?
function AlarmRefresh(){
window.location.reload("http://sida.html");
}
setInterval("AlarmRefresh()", 5000);
Det enda sättet att göra detta är att anropa window.open med ett ramnamn, om det finns några ramar i det andra fönstret.
<frame name="bla" />
eller
<iframe name="bla"></iframe>
window.open("http://sida.html", "bla");
Men är du helt säker på att du inte har en referens till fönstret? Om du öppnar en popup så har både popupen och moderfönstret varsin referns till varandra.
I moderfönstret kan du spara returvärdet från window.open():
mywin=window.open("popup.html", "_blank");
// mywin är din referens till fönstret
I popupen kan du använda windoow.opener för att komma åt moderfönstret.
Nej det borde det inte. mywin är en lokal variabel i funktionen, vilket gör att mywin tappar sitt värde så fort funktionen lämnas. Ett sätt att lösa detta är att lägga var mywin utanför funktionen, ett annat är att definiera en inre funktion, en metod som jag föredrar, eftersom man har allt på samma ställe.
function AlarmRefresh(){
var mywin;
setInterval(function(){
if (mywin) mywin.window.location.reload();
else mywin = window.open("http://sida.html", "_blank")
}, 5000);
}
Eftersom den inre funktionen är definierad inuti AlarmRefresh så kommer mywin alltid att vara tillgänglig för den.
Dock kan man diskutera det rätta i att tvinga besökaren att ha ett popupfönster öppet, och att det kommer att hamna överst om inte användaren har en popup-blockerare, men det är en annan historia.