2016-10-19 18 views
0

スクリプトは、そのURLに行くURLを受け取ります。 ただし、書面によるメモがない限りhttp://が追加されます。 しかしhttp: //検証に問題がありました。javascript url check error

<!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> 
+0

'myurl + = "のhttp://" について教えてくださいURL +;'(注: 'url'は未定義の変数のように見える) – AJNeufeld

+0

@AJNeufeld あなたが含まれていない場合URLバーの「http://」、http://を含む既存のURL(ex google.com。)の先頭にあるhttp://がサイトに移動します。 result => google.com - > go –

+0

@min_jeong、あなたが入力として受け取っている可能性はありますか? URLが "https:// ..."に戻った場合、このコードはエラーをスローします。可能性を提供すれば、より堅牢なソリューションを考え出すことができます。 – JeremyS

答えて

0
var myurl = document.getElementById("url").value; 
if (myurl.indexOf('http://') != 0) { 
    myurl = "http://" + myurl; 
} 
window.open(myurl); 

  • != 0
  • +=に変更
  • == 0urlがCを有する=
  • に変化した後getElementById("url").valueを添加window.open(myurl)
+0

しかし、修正はサイトには行かない。 –

0

@min_jeongに変更myurl

  • window.open(myurl.value)に絞首刑に、私はあなたがエラーの一部を参照するためのスニペットを作成しました。まず、DOM要素全体をつかんで、indexOfを使ってみようとしていました。それは動作しません。入力の値を取得し、入力を確認します。次に、+ =演算子は引数の右側にある値をすでにそこに追加します。したがって、入力+ http:// +入力が得られます。 http:// +入力のみが必要です。第3に、ボタンタイプの送信を使用すると、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>