我想通过我的页面上的链接进行排序,使他们中的一些开成一个新的窗口中,根据自己的URL。这是我的代码。它似乎并不奏效。你可以看到为什么?

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();
有帮助吗?

解决方案

使用的jquery.js。它会让你的生活变得更轻松:

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

其他提示

确认,当你调用这个函数的DOM已加载:

window.onload = MakeMenuLinksOpenInNewWindow;

或:

<body onload="MakeMenuLinksOpenInNewWindow();">

您可能不应该设置这个JavaScript。而是使用HTML

但是,如果你一定要...

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;

您的JavaScript看起来很好。假设你有你的链接内容不存在问题,你尝试修改之前,你需要推迟在其他帖子提到的运行你的方法。我的优选的方法是移动所述脚本内容页面的末尾。

因为它看起来像您使用外部JS文件,页面想

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

如果你仍然有问题,你必须张贴一个更完整的例子。

编辑:另一点。如果你仍然有问题,请确保您在href财产期待的URL没有被改写。例如,IE将钉的后/到一个。com URL的末尾,如果你不提供它,这将导致您的比较失败。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top