Avatar billede phattie Nybegynder
10. juni 2006 - 19:24 Der er 5 kommentarer og
2 løsninger

Ændre et link, linket skal være et popupvindue

Kære medlemmer!

Jeg er kommet i et lille javascript problem. Håber i kan løse det!

Jeg har et link som har to "onmouseover":
<a href="nogether.html" onmouseover="changePic('indmadher'); document.links('linketsomskalændres').href = (java script:popupWindow('hejsa.html'))>Link</a>


Når jeg kører dette siger min browser at den ventede et ')'
Men uanset hvor mange ) jeg tilføjer klager den stadig.

Hvis jeg prøver at gøre det eksakt samme bare uden "java script:popupWindow('hejsa.html')"  men med fx. ('hejsa.php') virker det!

hvad gør jeg forkert?

Tusinde tak på forhånd!

Mvh.
Julian Alison
Avatar billede mclemens Nybegynder
10. juni 2006 - 19:46 #1
Yumme, yum der er også damer på Eksperten :P

... Nåh, du skal skrive:
<a href="nogether.html" onmouseover="changePic('indmadher'); document.links('linketsomskalændres').href = 'java script:popupWindow(\'hejsa.html\')'>Link</a>

Forklaring "java script:" er også en del af en tekststreng der skal indsættes i href'en dog så skal 'stien' escapes en gang ( \'stien\' ) ... så js ikke tror at stien er en variabel der skal indsættes og den skal også escapes så den variabel der senere leveres til funktionen leveres som en tekststreng med '´er omkring sig...

... eksempel:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<script type="text/javascript">

function changePic(src){
if(src=="indmadher")alert("Spisetid");
}

function popupWindow(url){
window.open(url,"_blank");
}

</script>

</head><body>

<a href="nogether.html" onmouseover="changePic('indmadher');document.links('linketsomskalændres').href ='java script:popupWindow(\'hejsa.html\')'">Link</a><br>


<a href="nogether.html" id="linketsomskalaendres">Link2</a>

</body></html>
Avatar billede mclemens Nybegynder
10. juni 2006 - 19:48 #2
Ups... fejl i ... Nåh, du skal skrive:...

Her er den rigtige:
<a href="nogether.html" onmouseover="changePic('indmadher'); document.links('linketsomskalændres').href = 'java script:popupWindow(\'hejsa.html\')'">Link</a>

^ - Der manglede en " til sidst...
Avatar billede mclemens Nybegynder
10. juni 2006 - 19:55 #3
Kom lige til at kigge i FF også ... måske er det bedrer at bruge:
document.getElementById('linketsomskalaendres').href =
istedet for document.links('linketsomskalændres').href =
... getElementById forstår FF , det kniber med den anden ...
Avatar billede mclemens Nybegynder
10. juni 2006 - 20:01 #4
Så lige i en anden tråd at du havde lidt kvaler med echo fra php...
her er lige et kort eksempel på en php echo output ...
bemærk det giver lidt escaping bøvl... (ikke testet)

<?php
echo'<a href="nogether.html" onmouseover="changePic(\'indmadher\'); document.getElementById(\'linketsomskalændres\').href = \'java script:popupWindow(\\\'hejsa.html\\\')\';">Link</a>';
Avatar billede phattie Nybegynder
10. juni 2006 - 22:38 #5
Hej Mclemens!

Tusinde tak for dit hurtige og meget detaljerede svar!

Det virker som det skal :-)

Skriv endelig hvis jeg skal give dig point (er nemlig stadig ikke sikker på hvordan jeg gør).

Tak igen!

Mvh.
Julian Alison
Avatar billede mclemens Nybegynder
10. juni 2006 - 22:50 #6
Super, jeg kaster lige et svar ... så kan du (hvis du har
javascript og cookies aktiveret... hvilket du helt sikkert
har ;D) klikke på mit navn i boksen og herefter accepter :)
Avatar billede mclemens Nybegynder
10. juni 2006 - 23:47 #7
- og tak for point :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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