0

我有一个脚本可以从表单输入中修剪 http 或 https。

这是我的脚本:

          function MakeLinkSafe(){  
                var f = document.getElementById('f') 
                str = trim(f.value);  
                if(str.substr(0, 7) == 'http://'){  
                    f.value = str.substr(7);  
                }  
                else if(str.substr(0, 8) == 'https://'){
                    f.value = str.substr(8);  
                }
                return true; 




                var fb = document.getElementById('fb')
                str = trim(fb.value);  
                if(str.substr(0, 7) == 'http://'){  
                    fb.value = str.substr(7);  
                }  
                else if(str.substr(0, 8) == 'https://'){
                    fb.value = str.substr(8);  
                }
                return true;


            }  

当我在我的“f”输入中输入一个 url 而我将“fb”留空时,反之亦然,它正在工作。但是当我在两个输入中都输入 url 时。它不起作用。

我的代码有问题吗?谢谢

4

2 回答 2

1

您的代码的此代码片段无法访问

 var fb = document.getElementById('fb')
                str = trim(fb.value);  
                if(str.substr(0, 7) == 'http://'){  
                    fb.value = str.substr(7);  
                }  
                else if(str.substr(0, 8) == 'https://'){
                    fb.value = str.substr(8);  
                }
                return true;

在到达上述代码之前,该函数已经退出,返回值为 true。

一种方法如下(此代码将修复您的链接并在两者都是安全链接的情况下警报为真。

        function MakeLinkSafe(linkid){
             var f = document.getElementById(linkid) 
            str = trim(f.value);  
            if(str.substr(0, 7) == 'http://'){  
                f.value = str.substr(7); return true; 
            }  
            if(str.substr(0, 8) == 'https://'){
                f.value = str.substr(8);  return true;
            }
            return false;
        }

        var f = MakeLinkSafe('f');
        var fb = MakeLinkSafe('fb');

        if(f&&fb)alert(true);else alert(false);
于 2013-06-04T05:42:52.510 回答
1

这是因为您在检查“f”元素之后有一个返回语句......

更改您的代码如下:

function MakeLinkSafe() {
    var checkF = function () {
        var f = document.getElementById('f');
        str = trim(f.value);  
        if (str.substr(0, 7) == 'http://') {  
            f.value = str.substr(7);  
        }  
        else if (str.substr(0, 8) == 'https://') {
            f.value = str.substr(8);  
        }
        return true; 
    }

    var checkFB = function () {
        var fb = document.getElementById('fb');
        str = trim(fb.value);  
        if (str.substr(0, 7) == 'http://') {  
            fb.value = str.substr(7);  
        }  
        else if (str.substr(0, 8) == 'https://') {
            fb.value = str.substr(8);  
        }
        return true;
    }
    return checkF() && checkFB();
}  

当然,您可以创建一个接受 id 的函数以利用适当的函数,如上面 mrida 所提到的......类似于以下内容的东西可能会做:

function MakeLinkSafe() {
    var check = function (id) {
        var element = document.getElementById(id);
        str = trim(element.value);  
        if (str.substr(0, 7) == 'http://') {  
            element.value = str.substr(7);  
        }  
        else if (str.substr(0, 8) == 'https://') {
            element.value = str.substr(8);  
        }
        return true; 
    }
    return check('f') && check('fb');
}  
于 2013-06-04T05:48:21.213 回答