Peter: Variablen statt Links?

Hallo allerseits

Ich habe folgendes Problem: Ich habe in einer separaten Datei (linkliste.js) alle Links in Variablen abgespeichert, damit ich diese zentral verwalten kann, Beispiel siehe hier:

  
var linkinhaltb =             "inhalt-b.html";  
var linkb1 =                  "seite-b1.html";  
var linkinnofact =            "seite-b1.html#innovation-factory";  
var linksternwarte =          "seite-b1.html#sternwarte";  
var linkmeine =               "seite-b9.html#meinereiner";  

Auf der Seite lese ich dann im Headbereich die Datei folgendermassen ein:

  
<script type="text/javascript" src="linkliste.js"></script>  

Und im Bodybereich des Dokuments "seite-b1" stehen dann die Links wie folgt:

  
<a href="javascript:location.href = linkinnofact;">- innovation factory</a><br>  
<a href="javascript:location.href = linksternwarte;">- Sternwarte Sursee</a><br>  
<a href="javascript:location.href = linkmeine;">- meinereiner</a>  

Wenn ich nun auf "meinereiner" klicke, wird die Seite "seite-b9" ordnungsgemäss angezeigt (weil es eine andere Seite ist?). Wenn ich aber z.B. auf "Sternwarte" klicke (was sich auf der gleichen Seite befindet), wird das Ziel nur ganz kurz angezeigt und verschwindet dann grad wieder, dafür wird der Variableninhalt angezeigt. Die Links mit den Variablen funktionieren immer nur, wenn man andere Seiten aufruft, nie auf der eigenen. Was ist hier falsch? Ich verwende die neueste Firefos-Version.

Besten Dank falls jemand nen Tipp hat...

Grüsse

Peter

  1. Was du da machst ist aber komplett unüblich, das weißt du?
    Jemand ohne Script (das werden immer mehr) kann damit überhaupt nichts mehr anfangen.
    Warum machst du das nicht gleich in php oder einer anderen serverseitigen Sprache? Dabei käme dann eine brauchbare Seite raus und du hättest alle deine Vorteile nach wie vor.

  2. Hallo allerseits

    Ich habe folgendes Problem: Ich habe in einer separaten Datei (linkliste.js) alle Links in Variablen abgespeichert, damit ich diese zentral verwalten kann, Beispiel siehe hier:

    var linkinhaltb =             "inhalt-b.html";
    var linkb1 =                  "seite-b1.html";
    var linkinnofact =            "seite-b1.html#innovation-factory";
    var linksternwarte =          "seite-b1.html#sternwarte";
    var linkmeine =               "seite-b9.html#meinereiner";

    
    >   
    > Auf der Seite lese ich dann im Headbereich die Datei folgendermassen ein:  
    >   
    > ~~~javascript
      
    
    > <script type="text/javascript" src="linkliste.js"></script>  
    > 
    
    

    Und im Bodybereich des Dokuments "seite-b1" stehen dann die Links wie folgt:

    <a href="javascript:location.href = linkinnofact;">- innovation factory</a><br>
    <a href="javascript:location.href = linksternwarte;">- Sternwarte Sursee</a><br>
    <a href="javascript:location.href = linkmeine;">- meinereiner</a>

    
    >   
    > Wenn ich nun auf "meinereiner" klicke, wird die Seite "seite-b9" ordnungsgemäss angezeigt (weil es eine andere Seite ist?). Wenn ich aber z.B. auf "Sternwarte" klicke (was sich auf der gleichen Seite befindet), wird das Ziel nur ganz kurz angezeigt und verschwindet dann grad wieder, dafür wird der Variableninhalt angezeigt. Die Links mit den Variablen funktionieren immer nur, wenn man andere Seiten aufruft, nie auf der eigenen. Was ist hier falsch? Ich verwende die neueste Firefos-Version.  
    >   
    > Besten Dank falls jemand nen Tipp hat...  
    >   
    > Grüsse  
    >   
    > Peter  
    >   
      
      
    1\. Vorsicht Vorsicht... damit ist eine site von googlebot und anderen crawlern nicht wirklich durchsuchbar und wird warscheinlich auch nie geranke'd  
    2\. Wieso nutzt du dafür das href attribut ?  
      
    wenn würde ich folgende link variation nehmen  
    `<a href="" onclick="javascript:location.href=linkmeine;">- meinereiner</a>`{:.language-javascript}  
    obwohl ich dir generel davon abraten würde links so zu gestalten ...  
      
    3\. wenn du es Zentral willst mach doch eine php datei  
      
    ~~~php
      
    <?php  
    $linkinhaltb =             "inhalt-b.html";  
    $linkb1 =                  "seite-b1.html";  
    $linkinnofact =            "seite-b1.html#innovation-factory";  
    $linksternwarte =          "seite-b1.html#sternwarte";  
    $linkmeine =               "seite-b9.html#meinereiner";  
     ?>  
    
    
      
    <a href="<? echo $linkinnofact; ?>">- innovation factory</a><br>  
    <a href="<? echo $linksternwarte; ?>">- Sternwarte Sursee</a><br>  
    <a href="<? echo $linkmeine; ?>">- meinereiner</a>  
    
    

    Damit hast du von suchmaschienen durchsuchbare links und eine "zentrale" Linksammlung

    und dann bindest du die php datei ein mit <? require_once('links.php'); ?>

    und deine links stellst du wie folgt ein:

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

    IT & PR - Fenebris.com
    janfeddersen _at_ dunkelnetz _dot_ de
    Kredite, Umschuldung, Finanzen

  3. Wie meine Vorredner sagten, ist JavaScript nicht die geeignete Technik, um solche Informationen zentral auszulagern und mehrfach einzubinden. Ich möchte aber dennoch erklären, warum es zu diesem Verhalten kommt:

    <a href="javascript:location.href = linkinnofact;">- innovation factory</a>
    Wenn ich aber z.B. auf "Sternwarte" klicke (was sich auf der gleichen Seite befindet), wird das Ziel nur ganz kurz angezeigt und verschwindet dann grad wieder, dafür wird der Variableninhalt angezeigt.

    Wenn du <a href="javascript:JavaScript-Ausdruck"> notierst, so wird der Ausdruck ausgeführt. Jeder Ausdruck hat eine Ergebnis. Das Ergebnis der Wertzuweisung ist der zugewiesene Wert. Wenn das Ergebnis etwas anderes als »undefined« ist, dann stellt der Browser dieses Ergebnis anstelle des aktuellen Dokuments dar. Beispiel:

    <a href="javascript:'Bla!'">Zeigt »Bla!«</a>

    Man muss bei der Verwendung von href="javascript:..." verhindern, dass der Ausdruck das Ergebnis undefined hat. Das geht mit dem <http://de.selfhtml.org/javascript/sprache/operatoren.htm#void@title=unären Operator void>, mit dem jeder beliebige Wert zu undefined »umgebogen« wird:

    <a href="javascript:void 'Bla!'">Nichts passiert</a>

    Bei einer Wertzuweisung entsprechend:

    <a href="javascript:void(location.href = 'adresse.html')">Nichts passiert</a>

    Doch wie gesagt geht man dieser Problematik am besten aus dem Weg, indem man auf href="javascript:" möglichst verzichtet - und die Funktionalität von Hyperlinks auch nicht von JavaScript abhängig macht.

    Mathias

  4. Vielen Dank für euer Feedback! Ich habe inzwischen auch eine Lösung gefunden, wie es funktioniert. Ich bin sicher kein Spezialist, drum habe ich auch eine wohl etwas unübliche Lösung versucht. Aber man darf ja immer mal dazu lernen...  ;-)

    Grüsse

    Peter

    Hallo allerseits

    Ich habe folgendes Problem: Ich habe in einer separaten Datei (linkliste.js) alle Links in Variablen abgespeichert, damit ich diese zentral verwalten kann, Beispiel siehe hier:

    var linkinhaltb =             "inhalt-b.html";
    var linkb1 =                  "seite-b1.html";
    var linkinnofact =            "seite-b1.html#innovation-factory";
    var linksternwarte =          "seite-b1.html#sternwarte";
    var linkmeine =               "seite-b9.html#meinereiner";

    
    >   
    > Auf der Seite lese ich dann im Headbereich die Datei folgendermassen ein:  
    > 
    
    1. Mahlzeit Peter,

      Ich bin sicher kein Spezialist,

      Wer ist das schon? ;-)

      drum habe ich auch eine wohl etwas unübliche Lösung versucht.

      Beachte den Unterschied zwischen "unüblich" und "sinnfrei"!

      Aber man darf ja immer mal dazu lernen...  ;-)

      Natürlich - deswegen bist Du ja schließlich hier, oder? :-)

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|