我正在尝试对页面上的链接进行排序,并根据其网址将其中一些链接打开到新窗口中。这是我的代码。它似乎没有工作。你能明白为什么吗?
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();
答案 0 :(得分:2)
确保在调用此函数时已加载DOM:
window.onload = MakeMenuLinksOpenInNewWindow;
或:
<body onload="MakeMenuLinksOpenInNewWindow();">
答案 1 :(得分:1)
使用jQuery.js。它会让你的生活更轻松:
$("a[href='http://testtesttest.org/']").attr("target", "_blank");
答案 2 :(得分:0)
你可能不应该设置这个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;
答案 3 :(得分:0)
你的javascript看起来很好。假设您在尝试修改链接元素之前存在链接元素问题,则需要延迟运行其他帖子中提到的方法。我首选的方法是将脚本内容移动到页面的末尾。
因为看起来你正在使用外部js文件,所以你的页面需要
...
<a href="http://testtesttest.org/" >whatever</a>
...
<script src="myscriptfile.js"></script>
</body>
</html>
如果您仍有问题,则必须发布更完整的示例。
编辑:另一点。如果您仍然遇到问题,请确保没有重写href
属性中您期望的URL。例如,如果你不提供,IE会在.com url的末尾添加一个尾随/
,这会导致你的比较失败。