如何使用JavaScript在没有HTTPS协议的情况下打开链接(外部网站)



此代码(带有HTTPS协议),成功打开https://www.google.com

jsfiddle

<script>
    function openInNewTab() {
        var url = 'https://www.google.com';
        var win = window.open(url, '_blank');
        win.focus();
    }
</script>
<div onclick="openInNewTab();">OPEN LINK ON A NEW WINDOW</div>

但是,当我使用此代码(没有HTTP协议)时,它将打开https://www.example.com/www.google.com

jsfiddle

<script>
    function openInNewTab() {
        var url = 'www.google.com';
        var win = window.open(url, '_blank');
        win.focus();
    }
</script>
<div onclick="openInNewTab();">OPEN LINK ON A NEW WINDOW</div>

有没有办法使用JavaScript在没有HTTPS协议的情况下打开外部网站?

为什么不将目标设置为_blank?

使用外部锚标签?

例如

<a href="http://www.google.com" target="_blank">OPEN LINK A NEW WINDOWS</a>

尽管在此示例中,Google将重定向到HTTPS,因为安全

开头没有协议的URL字符串(或"协议相关的速记" //,有很好的论点不使用它)将被视为 anchorurl 如果它以哈希, #fragment或其他方式开头相对url 。相对URL只是将www.google.com放在路径当前级别的顶部。如果您的位置是http://www.example.com,则将变为http://www.example.com/www.google.com。或者,如果是 http://foo.net/bar/baz/quux.html,则变为 http://foo.net/bar/baz/www.google.com

var url = new URL('http://example.com');

请记住,当您打开http://google.com时,它们会重定向到其HTTPS协议。您对此无能为力。

最新更新