Externe Links im Menü im neuen Tab öffnen

  • Affected Version
    WoltLab Suite 5.4

    Guten Tag,


    ich habe folgende Situation, ich würde gerne einen externen Link, der ein PDF öffnet, bei Klick auf den Menüpunkt, das PDF in einem komplett neuen Tab öffnen.


    Ich habe jetzt auch bereits das Woltlab Forum nach einer Lösung durchsucht, konnte aber leider nix handfestes finden.


    Gibt es einen aktuellen Lösungsweg oder muss man das einfach hinnehmen?



    LG

  • Alternativ als URL angeben:


    Code
    javascript:window.open('URL ZUR SEITE')


    Setzt zwar Javascript voraus, aber wer heutzutage noch mit noscript oder dergleichen unterwegs ist, hat sowieso die Kontrolle über sein Leben verloren.

  • Das sollte immer noch funktionieren, wenn du es an deine Wünsche anpasst:

  • Diese Option findest du im ACP unter Konfiguration - Allgemein - Seite - Externe Links in neuem Fenster öffnen

    leider nein, funktioniert nicht bei Menüpunkten


    Alternativ als URL angeben:


    Code
    javascript:window.open('URL ZUR SEITE')


    Setzt zwar Javascript voraus, aber wer heutzutage noch mit noscript oder dergleichen unterwegs ist, hat sowieso die Kontrolle über sein Leben verloren.

    Wo konkret trage ich das ein, sry bin kein Programmierer


    Das sollte immer noch funktionieren, wenn du es an deine Wünsche anpasst:

    wenn ich das richtig verstehe, bezieht sich der Beitrag auf mp3, ich bräuchte es aber allgemein

  • wenn ich das richtig verstehe, bezieht sich der Beitrag auf mp3, ich bräuchte es aber allgemein

    Darum schrieb er ja als erstes.


    Das sollte immer noch funktionieren, wenn du es an deine Wünsche anpasst:


    Alternativ als URL angeben:


    Code
    javascript:window.open('URL ZUR SEITE')


    Setzt zwar Javascript voraus, aber wer heutzutage noch mit noscript oder dergleichen unterwegs ist, hat sowieso die Kontrolle über sein Leben verloren.

    Das gibt aber dann auf der Ausgangsseite ne Weiße Seite mit dem Hinweis auf Object Window. ;)

    Greetz

    Dark


    Mit dem Ende naht der Anfang mit etwas Neuen, um dann wieder zu sagen „Nach dem Update ist vor dem Update“. :S

    Edited 2 times, last by Darklord ().

  • Darum schrieb er ja als erstes.



    Das gibt aber dann auf der Ausgangsseite ne Weiße Seite mit dem Hinweis auf Object Window. ;)

    sorry, ich bin kein Programmierer

    ich habe nun diesen Code im Footer eingefügt:


    Code
    <script data-relocate="true">
    (() => {
        document.querySelectorAll('a[href$="-mp3/"]:not([target="_blank"]').forEach(link => { link.target = "_blank"; });
    });
    </script>

    Wie muss ich das nun anpassen, dass das für allgemeine Links greift?

  • Ändere das a[href$="-mp3/"] durch .menuOverlayItemLink:not([href*="domain.tld"]), .boxMenuLink:not([href*="domain.tld"]), wobei du jeweils das domain.tld durch deine verwendete Domain ersetzen musst.

  • Code
    <script data-relocate="true">
    (() => {
    document.querySelectorAll('.menuOverlayItemLink:not([href*="alpen-racing.com"], .boxMenuLink:not([href*="alpen-racing.com"]:not([target="_blank"]').forEach(link => { link.target = "_blank"; });
    });
    </script>

    dieses Codeschnipsel habe ich im Footer eingefügt, leider hat das keine Auswirkungen :/

    • Official Post
    HTML
    <script data-relocate="true">
    (() => {
    document.querySelectorAll('.menuOverlayItemLink:not([href*="alpen-racing.com"]), .boxMenuLink:not([href*="alpen-racing.com"]):not([target="_blank"])').forEach((link) => { link.target = "_blank"; });
    })();
    </script>

    Es fehlten die () am Ende.

    Alexander Ebert
    Senior Developer WoltLab® GmbH

    Edited once, last by Alexander Ebert: Fehlende Klammern in den Selektoren ergänzt. ().

  • HTML
    <script data-relocate="true">
    (() => {
    document.querySelectorAll('.menuOverlayItemLink:not([href*="alpen-racing.com"]), .boxMenuLink:not([href*="alpen-racing.com"]):not([target="_blank"])').forEach((link) => { link.target = "_blank"; });
    })();
    </script>

    Es fehlten die () am Ende.

    ich habe nun 1:1 diesen Code im Footer eingefügt, leider öffnet sich externe Links im Menü nach wie vor nicht im separaten Tab.


    Fehlt noch was?

  • Kannst du bitte noch einmal kurz anhand von 1-2 Beispielen beschreiben, welche Links in einem neuen Fenster geöffnet werden sollen und welche nicht?

    ich habe in einem Menüpunkt auf ein PDF verlinkt, und wenn man drauf klickt, soll dieses PDF in einem separaten Tab geöffnet werden, nicht auf der selben Seite.

    Im Screen habe ich hierbei, im Menüpunkt "Test" dieses PDF verlinkt

  • Mein Verständnisproblem hier ist, dass du einerseits von einer internen PDF sprichst, auf der anderen Seite von externen Links. Der Code funktioniert jedenfalls nicht, weil es sich bei der PDF um eine interne Verlinkung (isv. derselben Domain) handelt.


    Willst du PDF-Dateien (unabhängig von der Domain) auch stets in neuem Fenster öffnen, müsste der Code in etwa so aussehen:


    JavaScript
    <script data-relocate="true">
    (() => {
        document.querySelectorAll(
            '.menuOverlayItemLink[href$=".pdf"], .menuOverlayItemLink:not([href$="alpen-racing.com"]), .boxMenuLink[href$=".pdf"], .boxMenuLink:not([href*="alpen-racing.com"])'
        ).forEach((link) => { link.target = "_blank"; });
    })();
    </script>

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!