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

Convert user submitted external link attributes to open in a new window

本文关键字:属性 转换 在新窗口中打开 链接 外部 用户 提交      更新时间:2023-09-26

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

编辑:

有更好的方法吗。

有人有我写代码时可以使用的例子吗?

是的,这是可能的。用户浏览器偏好仍然会胜出,但如果你想在页面加载时更改链接的默认目标属性,你可以调用这样的函数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";
    }
}

希望这能有所帮助。

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

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