Externe Links im Menü im neuen Tab öffnen

  • Betroffene 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

  • Es gibt die Option externe Links in einem neuem Tab zu öffnen.

    Das betrifft allerdings das komplette System und nicht nur die Menüpunkte.

    Es gibt nur eine Sache, die sich niemals ändern wird - Und das ist die Tatsache, dass sich die Dinge ständig ändern.

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

    Es gibt nur eine Sache, die sich niemals ändern wird - Und das ist die Tatsache, dass sich die Dinge ständig ändern.

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

    SoftCreatR
    8. März 2021 um 22:23
  • 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:

    SoftCreatR
    8. März 2021 um 22:23

    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

    2 Mal editiert, zuletzt von Darklord (27. Januar 2022 um 11:16)

  • 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?

  • 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 :/

    • Offizieller Beitrag
    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

    Einmal editiert, zuletzt von Alexander Ebert (31. Januar 2022 um 00:32) aus folgendem Grund: 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>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!