当URL不包含http时,Window.Open导致问题

时间:2012-03-15 10:34:29

标签: javascript window

我有一个文本框,用户可以在其中输入名为Check link的URL和按钮。在单击按钮时,应打开一个新窗口,其中包含用户输入的URL。如果我输入网址为“http://google.com”,则输入window.open('http://google.com');工作正常,但如果我输入“www.google.com”,则它会附加到当前窗口网址(http:// localhost:1234www.google.com),这不是有效的网址。如何使这项工作?

提前致谢

4 个答案:

答案 0 :(得分:1)

检查&前置

if (!/^(http:|https:)/i.test(url))
   url = "http://" + url;

答案 1 :(得分:1)

试试这个:

function f(url) {
    if (url.indexOf("http://") == -1) {
        url = "http://" + url;
    } 
    window.open(url);
}

答案 2 :(得分:0)

如果您的问题是“我如何测试一个字符串是否以'http://'开头,如果没有预先添加它?”那样的话:

var url = "somestring.com"; // as set from your textbox
if (0 != url.toLowerCase().indexOf("http"))
   url = "http://" + url;

在进行此测试之前修剪前导和尾随空格是明智的,但我会将其作为练习留给读者......

答案 3 :(得分:0)

添加一个onclick按钮功能并处理该文本。

function checkLink() {
    var url = document.getElementById("textbox-id").value;
   if(url.substr(0,7) != "http://") {
       alert("Invalid URL! Please make it like http://myurl.com");
    return false;
   }
}