Öffnen alle externen links öffnen in einem neuen tab, abgesehen von einer domain
Ich versuche es zu öffnen alle externen links auf die Seite in einem neuen Fenster. Allerdings gibt es 2 Versionen der Website. e.g-store und die Haupt-Website. Also auf der Haupt-Website vielleicht haben wir links, gehen Sie zu http://store.site.com zum Beispiel.
Habe ich einige code hier ein, was mir erlauben wird, öffnen alle externen links in einem neuen Fenster. Aber ich möchte in der Lage sein, um auszuschließen, bestimmte domains. Wie ich schon oben erwähnt.
Hier ist der code:
$(document).ready(function() {
$("a[href^=http]").each(function(){
if(this.href.indexOf(location.hostname) == -1) {
$(this).attr({
target: "_blank",
title: "Opens in a new window"
});
}
})
});
Ich bin neu in JS /Jquery so viel information wäre toll.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auslösenden Klicks programmgesteuert, die Sie tun können, so etwas wie:
Sind Sie in der Lage, HTML-Bearbeiten, um eine bessere Haken für vielleicht ein click-Ereignis? Wenn ich brauche zu trennen bestimmter verbindungen zwischen den internen oder externen ich einen rel-Wert auf das HTML-element.
Dann in deinem javascript -
EDIT: da Sie bereits eine Tonne von links, wie wäre es damit..
wenn Sie wollen einfach nur alle links, die nicht mit Ihrem domain-Namen:
Ich glaube, ich würde es so machen:
Es ist ein bisschen Anleitung aber, wenn Sie nicht wollen, befassen sich mit Aufspaltung von strings und arrays, das ist die Lösung. Ich bin mir sicher, dass das helfen wird.
Edit: Und zusätzlich zu diesem, können Sie techfoobar Lösung für die Auslösung link klickt. Das wird Ihnen helfen, Ihre Webseiten-performance.
Entlang der gleichen Linien wie techfoobar Antwort darauf können Sie bauen eine Liste der Domänen, die überlassen werden sollen, die im selben Fenster geöffnet. Sie können es in eine weitere solide Möglichkeit, obwohl durch benutzen von regulären Ausdrücken. Wenn Sie nur ein gerade indexOf() überprüfen, Sie zu überspringen-links, die passenden subdomains, aber nicht passenden Bereichen, aber Sie können lassen Sie das '$' wenn Sie möchten, den Namen überall in den href-string.
Diese Umsetzung sollte das tun, was Sie wollen, und es gibt nur minimale änderungen an den code, den Sie gebraucht haben.
Mit diesem Beispiel werden alle links gehen auf google.com und stackoverflow.com werden Links zu öffnen, in das bereits bestehende Seite als auch.
Wenn Sie lieber verwenden einen Ereignis-handler auf dem Körper, der als die Veränderung der dom, empfehle ich etwas wie dieses...
Wird dies den trick tun für alle externen Domänen mithilfe von PHP
location.hostname
und Sie müssen nicht mehr phpGebäude auf Collin 's Antwort im raw-JS, das ist sehr nett, da Sie nicht brauchen, Jquery (trotz OP' s Frage). Ich würde ergänzen um die Möglichkeit auszuschließen, in anderen Domänen als der aktuelle hostname wenn: