You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何JavaScript中window.open()无法打开无http/https的链接?

无协议头链接无法正确打开的解决方法

问题原因

当调用window.open('www.google.com')时,浏览器会将该字符串识别为相对路径,而非外部绝对URL,因此会自动拼接当前页面的基础地址(比如你的本地服务器地址http://localhost:53484/),最终生成错误的地址http://localhost:53484/www.google.com,导致无法访问目标网站。

解决方案

方案1:手动添加HTTPS协议头

直接给链接补全https://协议(优先推荐HTTPS),修改open2函数:

function open2() {
    window.open('https://www.google.com')
}

方案2:通用自动补全协议函数

如果需要处理大量不确定是否带协议的链接,可以封装一个工具函数自动检测并补全:

// 通用URL打开函数,自动补全协议头
function openUrl(url) {
    // 正则匹配是否已包含http/https协议
    if (!/^https?:\/\//i.test(url)) {
        url = 'https://' + url;
    }
    window.open(url);
}

// 调用示例
function open2() {
    openUrl('www.google.com');
}

这个函数通过正则表达式检查链接开头,若未包含协议头则自动添加https://,确保浏览器将其识别为外部绝对URL。


内容的提问来源于stack exchange,提问作者HelloCW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 22:20:26