• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Link nur anzeigen wenn JS aktiviert

thuemmy

Aktives Mitglied
Hallo Forum,

ich versuche gerade einen Link nur dann anzeigen zu lassen, wenn JS aktiviert ist. Folgendes habe ich bis jetzt, was allerdings leider nicht funktioniert:
HTML:
<head>
:
:
<script type="text/javascrtip">     
function initPage() {       
document.getElementById("mylink").style.display="block";     
}     
</script>
:
:
</head>
<body onload="initPage()">
:
:
<a href='test.php' id='mylink' style='display:none;'>Testlink</a>
:
</body>
Da ich wirklich nur rudimentäre JS-Kenntnisse habe, finde ich keinen Fehler darin.

Gruß thuemmy
 
jQuery ist nicht das Allheilmittel für jede Aufgabe. Zudem gibt es auch Webseiten bei denen man auf jQuery verzichten muss oder bewusst verzichten möchte.

@thuemmy: gibts denn einen JavaScript-Fehler? Ich sehe momentan keinen Grund dafür, aber fragen kann man ja ;)

Alternativer Vorschlag: binde den Link per JavaScript in den DOM ein:
Code:
obj.innerHTML = "<a href='test.php'>Testlink</a>";
 
Hallo Tronjer,

vielen Dank für die Antwort. In der Tat habe ich natürlich vergessen jQuery einzubinden, ist aber mittlerweile erledigt. Ich gehe mal davon aus, dass die jquery.min.js 1.4.4 genügt.

Das mit show() habe ich so verstanden, dass ich das getElementByID so abändere:
HTML:
document.getElementById("mylink").show()";
Wenn ja, ist das auch erledigt. Leider funktioniert das noch nicht. Das Web-Developer-AddOn sagt mir in der Fehlerkonsole: Fehler: ReferenceError: initPage is not defined. Die Zeile auf die verwiesen ist, dass ist der xml-Prolog, oder wie das Ding heißt:
HTML:
<?xml version="1.0" ?>
 
Hat du da denn eine XML, XHTML oder HTML Seite?

Ich bin mir jetzt auch nicht sicher, ob das onload() tatsächlich bewirkt, dass die im Head definierte Funktion erst dann geladen wird, wenn die referenzierte ID bereits zur Verfügung steht. Binde das JS doch mal kurz vor dem schließenden Body Tag ein.


edit: und nein, in jQuery heißt es wirklich nur:

Code:
$('#mylink').show();
 
nabend threadi,

das mit dem innerHTML und dem DOM das gucke ich mir morgen dann an. Hab das eben mal kurz überflogen, aber meine Aufnahmefähigkeit ist wohl schon zu sehr eingeschränkt.

Gruß thuemmy
 
@ Tronjer,

bei der Seite handelt es sich um XHTML 1.0 Transitional. Das Ende der Webseite sieht nun so aus:
HTML:
  <script type="text/javascript">
    initPage();
  </script>    
  </body>
</html>
Der Fehler ist immer noch derselbe.

Edit: Der Fehler ist doch nicht mehr derselbe, er verweißt jetzt auf die Zeile 71 in der die initPage-Funktion aufgerufen wird, so wie oben in dem Codeschnipsel beschrieben. Jetzt gehe ich ins Bett.

Danke erstmal für die Hilfe, Euch ne gute Nacht
Gruß thuemmy
 
Zuletzt bearbeitet:
Ok, ich habe das nun mal nachgebaut. Dieser Code zeigt den Link nur dann an, wenn JS im Browser aktiviert ist.

HTML:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
</head>
<body>
    <a id="meinlink" style="display:none;" href="#">Ein Link</a>
    
    <script>
        $('#meinlink').show();
    </script>
</body>
</html>
 
Hallo Tronjer,

danke, jetzt tut es auch bei mir so, wie bei Dir.

@ threadi - Auch Dir einen Dank für die Hilfe, auch wenn ich Deinen Lösungsansatz nicht verfolgt habe.

Gruß thuemmy
 
Zuletzt bearbeitet:
Zurück
Oben