Frage

Ich versuche, durch die Links auf meiner Seite zu sortieren und einige von ihnen machen in ein neues Fenster geöffnet, in Abhängigkeit von ihrer URL. Dies ist der Code, den ich habe. Es scheint nicht zu funktionieren. Können Sie sehen, warum?

function MakeMenuLinksOpenInNewWindow() {
    var links = document.getElementsByTagName("a");
    for (var i = 0; i < links.length; i++) {
        if (links[i].href == "http://testtesttest.org/")
            links[i].target = "_blank";
    }
}
MakeMenuLinksOpenInNewWindow();
War es hilfreich?

Lösung

Mit jquery.js. Es wird Ihr Leben viel einfacher machen:

$("a[href='http://testtesttest.org/']").attr("target", "_blank");

Andere Tipps

Stellen Sie sicher, dass, wenn Sie diese Funktion aufrufen das DOM geladen wurde:

window.onload = MakeMenuLinksOpenInNewWindow;

oder:

<body onload="MakeMenuLinksOpenInNewWindow();">

Sie sollten wahrscheinlich nicht dieses Javascript werden zu setzen. Und statt HTML verwenden.

Aber wenn Sie müssen ...

function MakeMenuLinksOpenInNewWindow() {
    var links = document.getElementsByTagName("a");
    for (var i = 0, l = links.length; i < l; i++) {
        if (links[i].href === "http://www.example.com/")
            links[i].target = "_blank";
    }
}
window.onload = MakeMenuLinksOpenInNewWindow;

Ihr Javascript sieht gut aus. vorausgesetzt, Sie Probleme mit Ihrem Verbindungselemente nicht vorhanden, die, bevor Sie versuchen, sie zu ändern, müssen Sie Ihre Methode verzögern läuft wie in anderen Beiträgen erwähnt. meine bevorzugte Methode ist, um die Skriptinhalte an das Ende der Seite zu bewegen.

, da es so aussieht, die Sie verwenden eine externe JS-Datei, Ihre Seite möchte

    ... 
    <a href="http://testtesttest.org/" >whatever</a>
    ... 
    <script src="myscriptfile.js"></script>
</body>
</html>

Wenn Sie immer noch Probleme haben, werden Sie ein vollständigeres Beispiel etwas posten.

Änderungen: einen weiteren Punkt. wenn Sie immer noch Probleme haben, stellen Sie sicher, dass die URL, die Sie in der href Eigenschaft erwarten nicht neu geschrieben werden. zum Beispiel IE werden einen nachlauf / bis zum Ende eines .com-URL heften, wenn Sie es nicht schaffen, die Ihr Vergleich verursachen würde zum Scheitern verurteilt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top