Avatar billede ballum-it Praktikant
15. februar 2011 - 14:23 Der er 11 kommentarer og
1 løsning

Onclick funktion virker ikke i Firefox

Jeg har følgende kode

onclick="document.test.location.href='/test.asp?id=<%=RSslides("id")%>'"


Den virker som den skal i IE, men i Firefox vil den ikke åbne den nye side.

Hvad har jeg gjort galt her?
Avatar billede bas Forsker
15. februar 2011 - 14:41 #1
Firefox er mere grundig og konsekvent (eller hvad skal man sige) mht. hvad den vil acceptere og behandle.

Prøv evt. at kigge på nedenstående sider.


http://www.eksperten.dk/spm/764363

http://www.sitepoint.com/forums/showthread.php?t=416767

http://www.eksperten.dk/spm/882040
Avatar billede ballum-it Praktikant
15. februar 2011 - 14:47 #2
Tak, jeg fandt så lige selv ud af, at firefox ikke kan li test. inde i onclick="document.test.location.href='/test.asp?id=<%=RSslides("id")%>'". Fjerner jeg dette, virker det - men åbner så ikke i en iFrame som jeg vil. Så det må vel være iFrame der er problemet. Koden ser sådan ud:


<iframe frameborder="0" id="test" name="test" img src="images/slideimages/kvadrat.png" alt="" align="right" height="1000" width="500" scrolling="auto" ></iframe>
                      <%else%>
                      <iframe frameborder="0" id="test" name="test" src="test.asp?id=<%=RSslides("id")%>'"  scrolling="auto"></iframe>

Men hvad, kan jeg ikke lige se.
Avatar billede bas Forsker
15. februar 2011 - 15:25 #3
Velbekomme.
Det er længe siden jeg har arbejdet med iframe, men skal der ikke være noget med target="et eller andet" eller lign.?

Virker det som det skal i IE?
Avatar billede ballum-it Praktikant
15. februar 2011 - 16:14 #4
ja det virker perfekt i IE.
Avatar billede ballum-it Praktikant
15. februar 2011 - 16:20 #5
- og nej det har intet med target at gøre.
Avatar billede tjens Nybegynder
15. februar 2011 - 16:30 #6
Her er en test som demonstrerer flere måder at ændre iframe url fra hovedsiden:
http://tjens.dk/eksperten/931697/

Testet i MSIE8, Chrome og Firefox.


window.onload = function () {
  window.testFrame = document.getElementById("myFrame");
}

testFrame.contentWindow.location.search='?number=223344'; testFrame.contentWindow.location.href='getNo.php?number=334455';
testFrame.contentWindow.location='getNo.php?number=556677';
testFrame.src='getNo.php?number=667788';

Avatar billede bas Forsker
15. februar 2011 - 16:29 #7
Har du et link til siden?
Avatar billede ballum-it Praktikant
15. februar 2011 - 16:49 #8
Det ser ud som om det lige er det jeg mangler, men jeg kan ikke få det sat ind. Hvordan vil du lave min kode om efter det du skriver?

Min fil der skal vises i en iframe hedder test.asp.


window.onload = function () {
  window.testFrame = document.getElementById("myFrame");
}

onclick="testFrame.contentWindow.location.href='/test.asp?id=<%=RSslides("id")%>'"



Et forsøg, men det virker bare ikke.
Avatar billede tjens Nybegynder
15. februar 2011 - 18:29 #9
#8 Dit <iframe> tag's id-attribut skal stå i linien:
window.testFrame = document.getElementById("test");


Da din iframe allerede viser en slides-id fra starten, vil jeg anbefale, at du bruger den første metode i #7, da den kun ændre linkets parameter:
onclick="testFrame.contentWindow.location.search='?id=<%=RSslides("id")%>'"


Du kan evt undvære den nye onload funktion ved at skrive hele dynen på samme linie:
onclick="document.getElementById('test').contentWindow.location.search='?id=<%=RSslides("id")%>'"


Og så brug lige nogen bedre navne en anden gang!
Det er belastende at alting hedder test ;-)
Avatar billede ballum-it Praktikant
15. februar 2011 - 20:48 #10
Ja ved da heller ikke hvorfor jeg lige kaldte den det, og måske derfor jeg roder rundt i det nu. Har ændret filens navn til salgsdetails.asp, men kan ikke finde ud af det :( Dum? - tja ihvertfald langsom til at fatte :)

------------------
Jeg har denne her hvor man klikket på det ønskede:
<tr onmouseover="this.bgColor='#CCCCCC'"onmouseout="this.bgColor=''" onclick="document.salgsdetails.location.href='salgsdetails.asp?id=<%=RSslides("id")%>'" style="cursor:pointer">
------------------
Derefter længere nede stedet hvor iframen dukker op med salgsdetails:

<td align="right" valign="top">
                      <%if request.querystring("id")= "" then %>
                     
                      <iframe frameborder="0" id="salgsdetails" name="salgsdetails" img src="images/slideimages/kvadrat.png" alt="salg" align="right" height="1000" width="500" scrolling="auto" ></iframe>
                      <%else%>
                      <iframe frameborder="0" id="salgsdetails" name="salgsdetails" src="salgsdetails.asp?id=<%=RSslides("id")%>'"  scrolling="auto"></iframe>
                     
                 
                      <%end if%>
</td>

--------------------

Og jeg forstår ikke hvor du mener jeg skal sætte det andet ind - eller skal det erstatte noget af det jeg har nu?

Undskyld.
Avatar billede tjens Nybegynder
15. februar 2011 - 21:44 #11
Du kan helt fjerne name="salgsdetails" på iframe.

Og du mangler at skifte til at adressere iframen via id:

Du skal ændre onclick="... fra

    document.salgsdetails.location.href= ...
til
    document.getElementById('salgsdetails').contentWindow.location.href= ...
Avatar billede ballum-it Praktikant
15. februar 2011 - 22:52 #12
SÅ fattede jeg det endeligt:)

Tusind tak, det virker perfekt.

Du har virkelig fortjent de point med al det besvær du har haft med mig :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester