2013-03-04 77 views
2

我正在使用JavaScript來檢查一個變量,看看它是否包含「http://」,如果它沒有,要追加http。使用下面的代碼,但我得到的是頁面刷新/?myURL=被附加到瀏覽器地址欄。 刪除if(getUrl.indexOF("http://" == -1)部件將使代碼正常工作,但會缺少其包含的功能。 我不知道我要去哪裏錯了。我是否在if語句中錯過了休息或返回?JavaScript沒有按照我的要求去做!這是爲什麼?

function placeUrl() 
    { 
    var str1 = "http://" 
    var getUrl; 
    var newUrl; 

    getUrl = document.getElementById('usersUrl').value; 

    if(getUrl != null) 
     { 
     if(getUrl.indexOf("http://" == -1) 
      { 
      newUrl = str1.concat(getUrl); 
      } 
     else 
      { 
      newUrl = getUrl; 
      } 

     document.getElementById('iframe1').src = newUrl; 
     } 

    return false; 
    } 

而我的HTML:

<form onSubmit="return placeUrl()"> 
    <input id="usersUrl" type="text" name="myURL" value="Enter a URL..." onblur="if (this.value == '') {this.value = 'Enter a URL...';}" onfocus="if (this.value == 'Enter a URL...') {this.value = '';}"> 
    <input type="submit" value="Analyse"> 
</form> 
+3

你可以給這個不太通用的標題嗎? – djechlin 2013-03-04 14:57:57

+1

if(getUrl.indexOf(「http://」== -1) 需要多一個支架! – Michiel 2013-03-04 14:58:33

回答

5

我相信你的問題是,你錯過了梅開二度。將該行更改爲:

if(getUrl.indexOf("http://"/*HERE*/)/*HERE*/ == -1) 

我已添加註釋以指示哪些是缺少的括號。

+0

哦,我的天啊,我怎麼錯過了! – 2013-03-04 15:06:53

+0

我總是覺得這樣的錯誤很多次。長時間寫代碼我會在檢查時錯過這樣的錯誤,最好是短暫休息一下,喝一杯或零食,然後再回來。 – 2013-03-04 15:13:15

相關問題