转换用户提交的外部链接属性以在新窗口中打开

时间:2012-01-20 19:17:50

标签: javascript html

是否可以通过在加载页面时更改目标属性来强制使用javascript在新窗口/选项卡中打开链接,但仅限于外部链接?

修改

有没有更好的方法来做到这一点。

在编写代码时,有没有人可以使用任何示例?

2 个答案:

答案 0 :(得分:1)

是的,这是可能的。用户浏览器首选项仍然会胜出,但如果您想在页面加载时更改链接的默认目标属性,则可以调用此函数onload

function updateLinkTargets() {
    var links = document.getElementsByTagName("a");
    for (var i=0;i<links.length;i++) {
        var thisDomain = new RegExp("^"+window.location.protocol+"//"+window.location.host);
        links[i].target = thisDomain.test(links[i]) ? "_self" : "_blank";
    }
}

希望这有帮助。

答案 1 :(得分:0)

是的,有可能。但是,用户的浏览器设置仍会覆盖任何指示其他情况的链接行为。

EG。如果链接指示它应该在外部打开,但是用户已将浏览器设置为在同一窗口/选项卡中打开所有链接,则用户的设置将胜出,链接将外部开放。