Javascript 使用window.Open打开非http url

Javascript 使用window.Open打开非http url,javascript,Javascript,我知道它应该以这种方式工作,但我希望它作为一个没有前缀的url打开。有办法吗 window.open("http://www.w3schools.com") // open properly window.open("www.w3schools.com","_blank") // it adds my localhost as prefix. 单击该按钮可打开一个新的浏览器窗口 试试看 函数myFunction(){ window.open(“www.w3schools.com”)

我知道它应该以这种方式工作,但我希望它作为一个没有前缀的url打开。有办法吗

window.open("http://www.w3schools.com") // open properly   

window.open("www.w3schools.com","_blank") // it adds my localhost as prefix. 

单击该按钮可打开一个新的浏览器窗口

试试看 函数myFunction(){ window.open(“www.w3schools.com”); } 直接
问题陈述-用户将在应用程序中输入类似“abcd.com”的url,我必须将其与链接相关联。大多数用户的url都没有输入完整的url

根据下面的输入,我添加了这个

<!DOCTYPE html>
    <html>
    <body>
        <p>Click the button to open a new browser window.</p>
        <button onclick="myFunction()">Try it</button>
    <script>
    function myFunction() {
        window.open("www.w3schools.com");
    }
    </script>
    < a href="google.com">direct</a>
    </body>
    </html>
试试看
函数myFunction(url){
var check=url.substring(0,4);
如果(检查==“http”){
窗口打开(url);
}否则{
window.open('/'+url);
}
}

URL必须有一个方案。如果使用相对URL,则将从当前页面计算方案。(如果您使用的是只包含路径部分的相对URL,那么您还将获取当前页面的主机名,如果路径本身是相对的,那么您将获取当前页面的路径,直到最后一个
/
,这就是您的示例中发生的情况)


近年来,浏览器已经习惯于不在地址栏中显示方案,但URL仍然必须有一个方案(即使你看不到它)。

方案相关URL在这里也可以工作,例如
//www.w3schools.com
。是的,但URL仍然有一个方案。是的,但在这种情况下,你不必指定它,所以这可能会更适合提问者。谢谢你的意见。我真正的问题是,用户将输入类似“abcd.com”的url,我将不得不将其与链接相关联。@rinuthomaz-然后您需要编写代码将其转换为url。对于静态代码,这个问题没有什么意义-您要么要打开外部url,要么要打开相对url。如果这是关于处理用户输入的,即用户在
www.w3schools.com
中的某个位置键入,并且您想打开该站点,那么您需要一些代码来接收用户输入,检查协议是否存在,如果不存在,则添加它。(但这仍然会给只能通过HTTP或HTTPS访问的站点带来问题,您如何选择合适的站点?)。。用户只需输入abcd.com即可。。我将不得不联系到一个链接。有一个问题。。。
<button onclick="myFunction('facebook.com/')">Try it</button>

<script>
    function myFunction(url) {
            var check = url.substring(0, 4);
            if (check == "http") {
                     window.open(url);
            } else {
                window.open('//' + url);
            }
        }
</script>