Javascript url检查错误

javascript url check error

本文关键字:错误 检查 url Javascript      更新时间:2023-09-26

脚本接收URL以转到该URL。但是,除非有书面说明,否则http://将被添加。但是http: //验证有一个问题。

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style>
  label {
    width : 100px;
    float : left;
    background-color:#66ccff,
    font-weight : bold;
    }
</style>
  <script>
    window.onload=init;
    function init() {
        document.getElementById("myForm").onsubmit = goURL;
    }
    function goURL() {
        var myurl = document.getElementById("url");
        if(myurl.indexOf('http://')==0) {
            myurl += "http://"+url;
        }
        window.open(myurl.value);
    }
  </script>
 </head>
 <body>
 <form id = "myForm">
 <label> Go to </label>
    <input type="text" id="url" placeholder="http://add url....">
    <input type="submit" value="go website">
    </form>
 </body> 
</html>
var myurl = document.getElementById("url").value;
if (myurl.indexOf('http://') != 0) {
    myurl = "http://" + myurl;
}
window.open(myurl);

指出:

  • getElementById("url")
  • 后添加.value
  • == 0变为!= 0
  • +=更改为=
  • url更改为myurl
  • window.open(myurl.value)变为window.open(myurl)

@min_jeong,我已经创建了一个代码片段供您查看一些错误。首先,获取整个DOM元素并尝试对其使用indexOf。这行不通。获取输入的值,然后检查输入。其次,+=操作符将把已经存在的值与参数右侧的值相加,因此您将得到输入+ http://+ input。您只需要http://+输入。第三,如果你使用按钮类型提交,它会刷新页面之前,你的javascript可以持续运行,所以使用type="button",至少在开发中,这样你就可以console.log你的事件。

希望对你有帮助。

function init() {
    document.getElementById("submit-btn").onclick = goURL;
}
function goURL() {
    console.log(document.getElementById("url").value);
    var myurl = document.getElementById("url").value;
    if(myurl.indexOf('http://') === -1 && myurl.indexOf('https://') === -1) {
        myurl = "http://"+myurl;
    }
    //window.open(myurl);
    //window.location.href(myurl);
  alert(myurl);
}
window.onload=init;
label {
    width : 100px;
    float : left;
    background-color:#66ccff,
    font-weight : bold;
}
<!doctype html>
<html lang="en">
  <head>
  <meta charset="UTF-8">
  <title>NEAT-O</title>
  </head>
  <body>
    <form id = "myForm">
      <label> Go to </label>
      <input type="text" id="url" placeholder="http://add url....">
      <input id="submit-btn" type="button" value="go website">
    </form>
  </body>
</html>