Hur blir det om du bara skriver:
<script language="JavaScript">
<!--
foo.focus();
// -->
</script>
8 svar · 388 visningar · startad av fnolis
Har ett browserfönster som jag har namnget med:
<script language="JavaScript">
<!--
window.name = "foo";
alert('The name of this window is: "' + window.name + '"');
// -->
</script>
och det funkar hur bra som helst... men sedan skulle jag vill kunna ge detta focus från ett annat fönster (som inte är parent eller opener eller alls relaterat). Går detta att göra? Försökte med:
<script language="JavaScript">
<!--
window.foo.focus();
// -->
</script>
men fick då:
window.foo is null or not an object...
Hur blir det om du bara skriver:
<script language="JavaScript">
<!--
foo.focus();
// -->
</script>
Nopes...
Nej... var tvungen att prova men det funkar inte.. då tror det ju att foo är en variabel... och det är det ju inte.... frågan är om det går att "röra" fönster som "man" inte har skapat...
Det är ju en klar fördel om du själv skapar fönstret så att du har ett "handtag" på det. Ligger sidorna på samma domän kan du ju fuska lite; I fönstret som du skall kunna sätta focus på:
<iframe name="foo" style="display:none;"></iframe>
och sedan för att sätta focus;
<script type="text/javascript">
var bar=window.open("","foo","");
bar.document.open();
bar.document.write("<html><body><scr"+"ipt type='text/javascript'>parent.window.focus();</scr"+"ipt></body></html>");
bar.document.close();
</script>
... men detta känns som att gå i omvägar om du kan öppna det första fönstret via script. Ligger sidorna på olika domäner kommer du att då "åtkomst nekad" så då är det ingen lösning.
xp ie6.0
De ligger inte på samma domän.
...men om man öppnar ett med samma namn och sparar i en variabel och sedan sätter focus på den så funkar det "nästan" i WinXP med IE6.0. och i KDE med Mozilla 1.3 men inte helt tillfredsställande...
window.name - "Sets or retrieves a value that indicates the window name."
Btw, om du lyckas namnge ditt fönster så borde du inte ha några problem med att sätta fokus på det senare. Jag förstår inte problem egentligen, men det verkar som att du är inne på den sämsta lösningen på problemet, som förövrigt inte alls verkar fungera.
Problemet ligger i att window.name bara anger namnet på fönstret (som du kan använda med target när du länkar till det). Det är inte en objekt-referens till fönstret i sig som du kan använda tillsammans med metoden .focus().
Dessutom lever de 2 fönstren i olika namespace. Bara för att du ger variabeln foo ett värde i ett fönster kommer du inte åt den enbart via dess namn utan att ha en fönsterreferens till fönstret som den existerar i.
men....
Märkt att det funkar har jag ju... så det är inget som alla behöver påpeka för mig...
är det ingen som har en lösning istället då?
Jojoxx gav dig ett förslag. Det vi andra säger är att det inte finns någon lösning på ditt problem, och att du istället bör göra det du vill göra på ett icke-lamt sätt.