Avatar billede akyhne Nybegynder
22. december 2008 - 19:16 Der er 14 kommentarer og
1 løsning

Forhindre dobbeltklik på billede

Vel lige ud af landevejen. Kan det forhindres?

<a href="a.php"><img src="etbillede.jpg" /></a>
Avatar billede mireigi Novice
22. december 2008 - 19:40 #1
prøv med
<a onmouseover="window.status='a.php'" onclick="document.location.href='a.pgp'" ondoubleclick="return false;"><img src="etbillede.jpg /></a>

Har dog ikke testet det.
Avatar billede akyhne Nybegynder
22. december 2008 - 19:45 #2
Jeg kommer lige til at tænke på at ondoubleclick ikke duer. Kan man ikke på en eller anden måde fjerne href linket ved første klik?
Avatar billede mireigi Novice
22. december 2008 - 19:50 #3
jo, det kan du godt:

<a href="a.php" onclick="this.removeAttribute("href");"><img src="etbillede.jpg" /></a>

Du skal dog være opmærksom på, at siden skal genindlæses for at linket virker igen.
Avatar billede akyhne Nybegynder
22. december 2008 - 19:59 #4
Funktionen virker sikkert godt nok, men der tælles stadig 2 klik ved dobbeltklik :(
Avatar billede mireigi Novice
22. december 2008 - 20:17 #5
Ja hos mig virker det fint. Rent faktisk FOR godt, kan slet ikke bruge linket eftersom "onclick" afvikles FØR "href".

Prøv

<html>
<head>
<script language="javascript">
  var lastID = "";
  function FireLink(id, link)
  {
      if (lastID != id)
      {
        lastID = id;
    window.open(link);
      }
  }
</script>
</head>
<body>
  <a href="java script:FireLink('test', 'http://www.google.dk')" id="test">Test</a>
</body>
</html>


Den virker i hvertfald efter hensigten.
Avatar billede akyhne Nybegynder
22. december 2008 - 21:05 #6
Den åbner et nyt vindue. Det skal den ikke. Linket skal åbnes i samme vindue.
Avatar billede mireigi Novice
22. december 2008 - 22:25 #7
Det er et eksempel, du burde selv være i stand til at modificere det lidt. Men hvis du er doven, ligesom de fleste andre af os herinde :), kommer der lige en ændret udgave her:

<html>
<head>
<script language="javascript">
  var lastID = "";
  function FireLink(id, link)
  {
      if (lastID != id)
      {
        lastID = id;
        document.location.href = link;
      }
  }
</script>
</head>
<body>
  <a href="java script:FireLink('test', 'http://www.google.dk')" id="test">Test</a>
</body>
</html>

I hvilken sammenhæng har du behov for at tælle antallet af klik?
Avatar billede akyhne Nybegynder
22. december 2008 - 23:11 #8
javascript er absolut ikke min stærke side.
Avatar billede akyhne Nybegynder
23. december 2008 - 01:33 #9
Jeg skal bruge det som ekstra sikkerhed hvor brugeren skal klikke på et billede for at verificere. Der må ikke kunne klikkes 2 gange af sikkerhedsmæssige grunde.
Avatar billede mireigi Novice
23. december 2008 - 08:27 #10
Virker sidst sendte?
Avatar billede olebole Juniormester
25. december 2008 - 19:00 #11
<ole>

"Der må ikke kunne klikkes 2 gange af sikkerhedsmæssige grunde" >> Du må aldrig basere noget somhelst sikkerhed på JavaScript!

Hvis du laver et dokument som (22/12-2008 22:25:55) og skriver dette i adresselinjen og trykker 'Return':
    java script:FireLink=function(){alert("Funktionen gør nu noget helt andet")};void(0)

Så får du i stedet en alert, når du klikker på linket. Et JavaScript kan altid ændres, når det ligger i browseren  ;o)

/mvh
</bole>
Avatar billede akyhne Nybegynder
26. december 2008 - 02:27 #12
Det er en ekstra sikkerhed, Ole. Det er der ikke noget galt i. Der er ingen grund til at gøre det lettere for hackere end højst nødvendigt.

Desuden er funktionen mest beregnet til at forhindre dobelt registrering ved dobbeltklik (at en php kode køres 2 gange).
Avatar billede olebole Juniormester
26. december 2008 - 16:31 #13
Efter min mening burde du forhindre evt. dobbeltregistrering i PHP-delen af din app. JS kan ingen ekstra sikkerhed give - kun en farlig fornemmelse af ekstra sikkerhed  ;o)

Anyway, så kan du gøre sådan:

function checkLink(oLnk) {
    if (oLnk.getAttribute("hasBeenFired")) return false;
    oLnk.setAttribute("hasBeenFired", true);
    return true;
}

<a href="enside.php" onclick="return checkLink(this)">Test</a>
Avatar billede akyhne Nybegynder
23. maj 2009 - 03:54 #14
Skal vi lukke?
Avatar billede akyhne Nybegynder
26. september 2009 - 17:51 #15
Lukker
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