2

我正在使用 JavaScript 检查变量以查看它是否包含“http://”,如果不包含,则将 http 附加到它。使用下面的代码,但我得到的只是页面刷新/?myURL=并附加到浏览器地址栏。删除该if(getUrl.indexOF("http://" == -1)部分将使代码正常工作,但将缺少它包含的功能。我无法弄清楚我哪里出错了。我是否错过了 if else 语句中的中断或返回?

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>
4

1 回答 1

5

我相信你遇到的问题是你错过了一个大括号。将行更改为:

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

我添加了注释以指出缺少的括号。

于 2013-03-04T14:58:53.773 回答