Für das Hilfeforum benötigst du eigene Zugangsdaten. Der Account deines Blogs ist hier irrelevant.

blogsport.de Forum » Fehlerteufel

link in neuem fenster?

  • Thema gestartet vor 13 Jahren
  • 5 Beiträge bislang
  • Letzer Beitrag von p2b
  1. hi.
    für externe links gibt es ja eigentlich die möglichkeit sie in einem neuen browserfenster öffnen zu lassen, da target="blank" vom w3c "verboten" wurde soll das ja mit diesem rel attribut gelöst erden, eh doof, aber ok. leider funktioniert das nicht. sehe ich das richtig dass ich manuell den js code in alle header einbauen muss? liegt das womöglich am verwendeten template?
    danke schonmal.
    ciao.

    dp.

    Veröffentlicht am 2006-08-10 16:46:10 #
  2. alo ich hab nun mal versucht auf eigene faust den schnipsel in die theme datei zu packen leider ohne erfolg, gibt eine fehlermeldung und die seite wird nciht mehr geladen. das ist der schnipsel der wohl ins head tag gehört:

    function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
    var anchor = anchors[i];
    if (anchor.getAttribute("href") &&
    anchor.getAttribute("rel") == "external")
    anchor.target = "_blank";
    }
    }
    window.onload = externalLinks;

    hier steht dass der schnipsel in eine eigene .js datei soll...

    bin immernoch ziemlich ratlos...funktioniert dieses rel attribut den bei anderen blogs?
    bye

    dp

    Veröffentlicht am 2006-08-15 10:04:10 #
  3. Das Problem, weshalb dein Code oben einen Fehler verursacht, kommt daher, dass Smarty das für Smarty-Code hält sobald geschweifte Klammern auftauchen. Deshalb musst Du Smarty sagen, dass es den Block nicht interpretieren soll. Das geht mittels der Anweisung {literal}. Also so:

    {literal}
    function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
    var anchor = anchors[i];
    if (anchor.getAttribute("href") &&
    anchor.getAttribute("rel") == "external")
    anchor.target = "_blank";
    }
    }
    window.onload = externalLinks;
    {/literal}

    Allerdings wirst Du durch das verwendete window.onload weitere Probleme bekommen, da der onload-Handler vermutlich bereits belegt ist, deshalb lieber so:

    {literal}
    function externalLinks() {
    if (window.sonload) window.sonload();
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
    var anchor = anchors[i];
    if (anchor.getAttribute("href") &&
    anchor.getAttribute("rel") == "external")
    anchor.target = "_blank";
    }
    }
    if (window.onload)
    window.sonload = window.onload; // speichern!
    window.onload = externalLinks;
    {/literal}

    Veröffentlicht am 2006-08-15 10:26:13 #
  4. super. klappt.
    vielen dank für die hilfe.

    Veröffentlicht am 2006-08-15 10:43:07 #
  5. ahhhh. gerade ging es doch noch. jetzt steht der text einfach über der seite. verrücktes zeug.

    Veröffentlicht am 2006-08-15 10:56:22 #

RSS-Feed zu diesem Thread

Antworten

Du musst dich einloggen zum Schreiben.

Für das Hilfeforum benötigst du eigene Zugangsdaten. Der Account deines Blogs ist hier irrelevant.

0.015 - 5 queries