Avatar billede anders_h Novice
08. oktober 2005 - 14:08 Der er 25 kommentarer og
1 løsning

Gøre links uklikbare

Hejsa,

kan man med noget CSS gøre alle links i et helt dokument uklikbare?

Mvh. Anders
Avatar billede apo Praktikant
08. oktober 2005 - 14:09 #1
Du kan gøre således i HTML:

<a href="#"></a>
Avatar billede apo Praktikant
08. oktober 2005 - 14:10 #2
Ellers må du forklare nærmere. Med 'uklikbare' forstår jeg at du gerne vil have linkene vist, men de skal ikke føre nogen vejne. Korrekt?
Avatar billede anders_h Novice
08. oktober 2005 - 14:12 #3
Jeps, det er helt rigtigt, men det jeg kunne tænke mig er, at hvis en php $_GET variable er sand (eksempelvis uklikbar=1) skal alle links i et helt dokument være uklikbare.

Altså et eller andet document.all.links.inactive eller hvad ved jeg :-)
Avatar billede apo Praktikant
08. oktober 2005 - 14:13 #4
Hmm... PHP er ikke my thing, så jeg kan nok ikke hjælpe dig med det
Avatar billede softspot Forsker
08. oktober 2005 - 14:14 #5
CSS benyttes til styling, dvs. udseende, så det skal du nok benytte javascript til at opnå, hvis du ikke vil lave det som apo foreslår...
Avatar billede anders_h Novice
08. oktober 2005 - 14:14 #6
Bare se bort fra PHP'en, det har ingen indflydelse, det er mere hvis der findes en standardkommando i CSS (eller javascript) som gør en hel sides links uklikbare
Avatar billede apo Praktikant
08. oktober 2005 - 14:15 #7
Så skal det være i javascript, som softspot foreslår.
Avatar billede anders_h Novice
08. oktober 2005 - 14:16 #8
Ja.. Kunne måske være noget i retning af document.all.a.style.display = "inline"; (går ikke udfra at det virker det der, men det er det jeg mener i hvert fald)
Avatar billede jesper-moeller Nybegynder
08. oktober 2005 - 14:17 #9
Du kunne gøre det simple at placere en gif henover hele siden... så er det kun den der kan klikkes...men indholdet ses
(Men lige så nem at komme uden om som JS)
Avatar billede softspot Forsker
08. oktober 2005 - 14:17 #10
Du kan lave et javascript som bliver inkluderet betinget af at uklikbar=1...

Med den grove fil:

window.onload = function() {
  var lnks = document.anchors;
  for(var i=0; i < lnks.length; i++) {
    lnks.onclick = function() { return false; }
  }
}
Avatar billede udvikler Nybegynder
08. oktober 2005 - 14:17 #11
if ($_POST[feltnavn] == "$_POST[feltnavn]") {
echo "<a href="#">link</a>";
}else{
echo "<a href="www.blabla.dk">link</a>";
}
Avatar billede anders_h Novice
08. oktober 2005 - 14:19 #12
softspot -> Vil jeg lige prøve

-aco- -> Rigtig nok, men problemet er bare at der er mange links (bliver lidt uoverskueligt så)
Avatar billede apo Praktikant
08. oktober 2005 - 14:21 #13
Du kunne måske benytte dig af en redirect-side. Hvis en session er sat til 1, skal redirect-siden føre til linkets adresse (Hentet fra en database). Hvis session er sat til 0, skal den sende brugeren tilbage til den side, hvor brugeren klikkede på linket.

Eller noget i den stil :-)
Avatar billede udvikler Nybegynder
08. oktober 2005 - 14:22 #14
Jamen, så kan du lave det i en fil og include den på din forside eller hvor du skal have den ? så vil den ihvertfald ikke blive uoverskuelig!
- nogle gange er nogle ting bare nød til at være som de er :-D
Avatar billede softspot Forsker
08. oktober 2005 - 14:23 #15
rettelse:

window.onload = function() {
  var lnks = document.anchors;
  for(var i=0; i < lnks.length; i++) {
    lnks[i].onclick = function() { return false; }
  }
}

der manglede lige en indeksering i array'et... :(
Avatar billede anders_h Novice
08. oktober 2005 - 14:28 #16
Softspot, jeg kan ikke rigtig få det til at virke. Jeg har prøvet at indsætte det både i <head> og i <body>..
Avatar billede softspot Forsker
08. oktober 2005 - 14:29 #17
hmmm... heller ikke den sidste version...?
Avatar billede anders_h Novice
08. oktober 2005 - 14:30 #18
Nej.. :-(

Skal der noget onload i <body> eller noget, eller skulle det bare virke?
Avatar billede softspot Forsker
08. oktober 2005 - 14:31 #19
prøv lige denne version så (gerne i head-sektionen):

window.onload = function() {
  var lnks = document.getElementsByTagName("A");
  for(var i=0; i < lnks.length; i++) {
    lnks[i].onclick = function() { return false; }
  }
}

Den fungerer her hos mig :)
Avatar billede softspot Forsker
08. oktober 2005 - 14:32 #20
Der skal ikke laves noget ved links. Det der sker med denne kode er at links bare ikke fungerer længere (ved klik). Man kan ikke se at de ikke fungerer, men effekten bliver tydelig når du prøver at klikke... :)
Avatar billede anders_h Novice
08. oktober 2005 - 14:34 #21
Jamen det er jo rigtigt!! :-)

Tak for hjælpen!!

Smid et svar
Avatar billede softspot Forsker
08. oktober 2005 - 14:38 #22
Velbekomme :)

Denne form for javascript er meget anvendelig, da du i princippet kan manipulere alt i dokumentet uden at den grundliggende HTML-dokument skal ændres...
Avatar billede softspot Forsker
08. oktober 2005 - 14:39 #23
Tak for point :)
Avatar billede anders_h Novice
08. oktober 2005 - 14:40 #24
Ok, lyder godt, for nemlig nok temmelig meget brug for det :-)
Avatar billede anders_h Novice
08. oktober 2005 - 14:41 #25
får*
Avatar billede olebole Juniormester
08. oktober 2005 - 19:05 #26
<ole>

En enkelt detalje:
Når man definerer et 'array' af elementer udfra tagName, bør dette skrives med småt:
    var lnks = document.getElementsByTagName("a");

Kun, når et tagName returneres fra DOM'en, sker det i uppercase (sålænge, vi taler HTML):
    if (ELEMENT.tagName=="A") alert("Elementet er et link");

/mvh
</bole>
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