webForumDet fria alternativet
Logga in / Bli medlem

javascript konflikt

JavaScript

4 svar · 235 visningar · startad av sven

Medlem sedan aug. 2001383 inlägg
Trådstart#1

Har en inloggningssida (in.asp) som inte bär sig åt riktigt som jag vill.
Problemet är att koden

<body onload="document.three.fnamn.focus();" bgcolor="#FFFFCC">

göt så att nät man öppnar fönstret

<a href="in.asp" onClick="window.open('new/new.asp', 'bob', config='height=300,width=250,top=225,left=150')" onmouseover="window.status='Klicka här för att bli medlem';return true;" title="Klicka här för bli medlem"onmouseout="window.status='';return true;">Ny medlem</a>

så hamnar detta i bakgrunden. Och det vill man ju inte. Finns det någon annan lösning på mitt problem?

Medlem sedan juni 20004 308 inlägg
#2

För det första bör du ändra på onClick-eventet så att det lyder;

onClick="window.open('new/new.asp','bob','height=300,width=250,top=225,left=150'); return true;" för att det skall vara korrekt. Sedan är frågan vad du vill skall hända; du sätter focus på ett formulärsfält och således kommer även fönstret som det ligger i att få focus. Vill du att det nya fönstret skall få focus istället får du helt sonika plocka bort onLoad-eventet i det andra fönstret. Du kan inte ha focus på 2 olika objekt samtidigt.

Medlem sedan aug. 2001383 inlägg
#3

Men....
Det är ju så jag skrivit för att göra popup fönstret. Detta fungerar.
Men problemet är ju att onfocus gör att popup fönstret hamnar under in.asp när det laddas om <a href="in.asp" onClick....</a>
Om jag tar bort ="in.asp" så att det blir <a href onClick....</a> så fungerar det. Men länken får ingen understrykning då.

Medlem sedan juni 20004 308 inlägg
#4

Det är ju så jag skrivit för att göra popup fönstret. Detta fungerar.

Det är möjligt, men det är fel. Det du skall plocka bort är "config=".

Men problemet är ju att onfocus gör att popup fönstret hamnar under in.asp när det laddas om <a href="in.asp" onClick....</a>

Japp, och det är inte så konstigt eftersom på sidan som laddas (in.asp) har du i <body>-taggen talat om att onLoad (när sidans laddats) skall focus sättas på formulärsfältet som du pekar på. Vill du att denna sida skall laddas men inte att focus skall sättas på formulärsfältet utan istället på det nyöppnade fönstret skall du plocka bort onLoad="..."

Om jag tar bort ="in.asp" så att det blir <a href onClick....</a> så fungerar det. Men länken får ingen understrykning då.

Ja, href är en obligatoriskt egenskap för elementet <a> och måste således vara med däremot kan du skriva href="#" om du inte vill ladda någon annan sida men ändå få en länk. Sedan kan du i onClick-eventet öppna ditt fönster som vanligt och sist lägga till "return false" istället för "return true" så kommer inte ens själva länken "#" att vara aktiv.

Medlem sedan aug. 2001383 inlägg
#5

Tackar... Nu fick jag det att funka...

250 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
115 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)