|
| Popup box uden reload, når link aktiveres ~ Fra : Karsten |
Dato : 11-11-08 15:02 |
|
Hej.
Jeg bruger scriptet her på flere sider på min hjemmeside til at
poppe en box op med en formular.
...
<script type="text/javascript">
//<![CDATA[var foo=null; function focusfoo(){if
(foo&&!foo.closed) foo.focus();}
function blurfoo(){ if (foo&&!foo.closed) foo.blur();} //]]>
</script>
<a href="javascript:void(0)"
onclick="foo=window.open('popup.htm','win4','width=700,height=460
,top=11,left=0,toolbar=no,location=no,directories=no,status=no,me
nubar=no,scrollbars=yes,resizable=yes');return false"
onmouseover="focusfoo();"></a>
....
Det fungerer rigtig fint når der skiftes mellem popup og
moderside hvorfra det er aktiveret, men når linket bliver
reaktiveret alså klikket fra en anden side, reloades popup´n og
dermed forsvinder det, der er skrevet tidligere.
Er der nogen som kender en måde at kunne reaktivere linket fra en
anden side uden at popup boksen reloader sig selv?
På forhånd mange tak.
Karsten Østergaard
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Ryan Kristensen (11-11-2008)
| Kommentar Fra : Ryan Kristensen |
Dato : 11-11-08 17:13 |
|
On Tue, 11 Nov 2008 15:01:31 +0100, Karsten <bee@ready.dk> wrote:
> onclick="foo=window.open('popup.htm','win4','width=700,height=460
> ,top=11,left=0,toolbar=no,location=no,directories=no,status=no,me
> nubar=no,scrollbars=yes,resizable=yes');return false"
>
> Det fungerer rigtig fint når der skiftes mellem popup og
> moderside hvorfra det er aktiveret, men når linket bliver
> reaktiveret alså klikket fra en anden side, reloades popup´n og
> dermed forsvinder det, der er skrevet tidligere.
Jeg er ikke helt sikker på, at jeg forstår, hvad du vil.
Hvis du kun vil åbne en popup, hvis den ikke er åben, og hvis den er åben,
sætte fokus.
Så lav en funktion til det:
function pop() {
if (!foo)
foo=window.open(window.location,'win4','width=700,height=460,top=11,left=0,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
else foo.focus();
}
og kald den i onclick.
Derudover bør du nok fjerne focusfoo() fra onmouseover, da det hurtigt kan
blive irriterende, hvis man ved en fejl kommer hen over linket med musen.
Og overvej om href-attributen ikke kan linke til popup.htm - evt.
kombineret med target="_blank". Jeg kan bedst lide at være helt sikker på,
alle kan få adgang til informationerne.
--
Mvh.
Ryan Kristensen
| |
Karsten (14-11-2008)
| Kommentar Fra : Karsten |
Dato : 14-11-08 15:21 |
|
> Jeg er ikke helt sikker på, at jeg forstår, hvad du vil.
> Hvis du kun vil åbne en popup, hvis den ikke er åben, og hvis den er åben,
> sætte fokus.
- Ja det er netop hvad jeg gerne vil, men kan ikke (lidt uøvet) få det til at virke.
Se http://es-masseovne.dk/side1.htm
Hvis man åbner spørgsmålboksen og skriver noget, men så springer tilbage til modersiden og linker ind på den anden side, hvor spørgsmålsboksen så aktiveres igen. Så
bliver den reloadet og det skrevne er forsvundet. Den reload vil jeg gerne forhindre.
koden ser nu sådan ud:
<script type="text/javascript">
function pop() {
if (!foo)
foo=window.open(window.location,'win4','width=700,height=460,top=11,left=0,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
else foo.focus();
}
</script>
<a href="boks.htm" target="windowName"
onclick="pop=window.open('boks.htm','win4','width=600,height=460,top=11,left=400,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes
');return false" onMouseOver="pop.focus()";>Stil spørgsmål til os.</a>
Mvh Karsten
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Birger Sørensen (14-11-2008)
| Kommentar Fra : Birger Sørensen |
Dato : 14-11-08 17:16 |
|
Karsten har bragt dette til os:
>
>> Jeg er ikke helt sikker på, at jeg forstår, hvad du vil.
>> Hvis du kun vil åbne en popup, hvis den ikke er åben, og hvis den er åben,
>> sætte fokus.
>
> - Ja det er netop hvad jeg gerne vil, men kan ikke (lidt uøvet) få det til at
> virke. Se http://es-masseovne.dk/side1.htm
>
> Hvis man åbner spørgsmålboksen og skriver noget, men så springer tilbage til
> modersiden og linker ind på den anden side, hvor spørgsmålsboksen så
> aktiveres igen. Så bliver den reloadet og det skrevne er forsvundet. Den
> reload vil jeg gerne forhindre. koden ser nu sådan ud:
>
> <script type="text/javascript">
> function pop() {
> if (!foo)
> foo=window.open(window.location,'win4','width=700,height=460,top=11,left=0,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
> else foo.focus();
> }
> </script>
>
> <a href="boks.htm" target="windowName"
> onclick="pop=window.open('boks.htm','win4','width=600,height=460,top=11,left=400,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes
> ');return false" onMouseOver="pop.focus()";>Stil spørgsmål til os.</a>
>
> Mvh Karsten
Noget med at give spørgsmålsboksen et navn, og hvis boksen eksisterer
ikke reloade blot fokusere?
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Ryan Kristensen (14-11-2008)
| Kommentar Fra : Ryan Kristensen |
Dato : 14-11-08 17:53 |
|
On Fri, 14 Nov 2008 15:21:21 +0100, Karsten <bee@ready.dk> wrote:
> koden ser nu sådan ud:
>
> <script type="text/javascript">
> function pop() {
> if (!foo)
> foo=window.open(window.location,'win4','width=700,height=460,top=11,left=0,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
> else foo.focus();
> }
> </script>
>
> <a href="boks.htm" target="windowName"
> onclick="pop=window.open('boks.htm','win4','width=600,height=460,top=11,left=400,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes
> ');return false" onMouseOver="pop.focus()";>Stil spørgsmål til os.</a>
I onclick-handleren åbner du et vindue, du gemmer i variabelen "pop". Og
funktionen "pop" tjekker om "foo" findes.
Hvis du i stedet bruger pop-funktionen i din onclick, så burde det virke:
<a href="boks.htm" target="windowName" onclick="pop();return false">Stil
spørgsmål til os.</a>
--
Mvh.
Ryan Kristensen
| |
Karsten (15-11-2008)
| Kommentar Fra : Karsten |
Dato : 15-11-08 13:10 |
|
> Hvis du i stedet bruger pop-funktionen i din onclick, så burde det virke:
> <a href="boks.htm" target="windowName" onclick="pop();return false">Stil
> spørgsmål til os.</a>
Ja, jeg tror det er tæt på.
Men siden der aktiverer boksen loader bare sig selv nu. http://es-masseovne.dk/side1.htm
Hvis jeg sætter "boks.htm ind istedet for "window.location" kommer en fejlmelding. Så det dur ikke.
Er der vej rundt om det?
.....og koden nu.....
<script type="text/javascript">
//<![CDATA[
function pop() {if (!foo)
foo=window.open(window.location,'win4','width=700,height=460,top=11,left=0,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes');
else foo.focus(); }
var foo=null; function focusfoo(){if (foo&&!foo.closed) foo.focus();}
function blurfoo(){ if (foo&&!foo.closed) foo.blur();}
//]]></script>
<a href="boks.htm" target="boks"
onclick="pop();return false" onMouseOver="focusfoo()";>Stil spørgsmål til os.</a>
............
Tak for jeres indsats.
Karsten
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Karsten (20-11-2008)
| Kommentar Fra : Karsten |
Dato : 20-11-08 15:04 |
|
Nå men jeg fandt løsningen et andet sted.
koden......
<script language=javascript>setInterval(testFoo,1000); // every 1 seconds
function testFoo() {
if (!window.opener.foo) {
window.opener.foo = self; } }
</script>
....
indsat på pop-siden gør udfaldet.
Tak for hjælpen dog her i forummet.
VH Karsten
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
|
|