IE中的document.url问题

时间:2016-09-26 09:52:49

标签: javascript window.location

function drawCaptcha() {
    var absURL = document.URL.substr(0, document.URL.lastIndexOf('#'));

     // Internet Explorer 6-11
    var isIE = /*@cc_on!@*/false || !!document.documentMode;
        // Edge 20+
    var isEdge = !isIE && !!window.StyleMedia;
    if(isIE || isEdge){
        var absURL = window.location.href.substr(0, window.location.href.lastIndexOf('#'));
    }
    console.log("absURL==",absURL);
    document.getElementById('captchaImage').setAttribute('src',
            absURL + 'web/gencptch');
    //document.getElementById('captchaImage').setAttribute('src', '/epa-web/web/gencptch');

}

您好  我试图通过单击按钮生成验证码图像。它完全适用于chrome和Mozilla,但在IE中存在问题。

当我尝试在IE中调试时,我发现document.URL的值与chrome和Mozilla不同。

在Chrome中,其值为localhost:8080/login/#,而在IE中,它的值为" "。我尝试用document.URL替换window.location.href,但没有运气。我努力但没有得到图像没有在IE中显示的原因。在网络部分,我看到服务没有被调用,不知道为什么!!!

编辑: -

这个问题是因为JQuery

因为当我加载页面时,我正在调用函数

$(document).ready(
            function() {
                var absURL = document.URL.substr(0, document.URL
                        .lastIndexOf('#'));
                document.getElementById('captchaImage').setAttribute('src',
                        absURL + 'web/gencptch');
            });

任何帮助表示赞赏!!!

谢谢

1 个答案:

答案 0 :(得分:2)

不确定你真正要做的是什么......

function drawCaptcha() {
    document.getElementById('captchaImage').setAttribute('src','test');
    var urlHash = location.href.lastIndexOf('#');
    if ( urlHash === -1 ) urlHash = location.href.length;
    var absURL = location.href.substr(0, urlHash);
    document.getElementById('captchaImage').setAttribute('src',
            absURL + 'web/gencptch');
}

这应该可以正常工作。确保你实际上已经调用了drawCaptcha()

location.href是所有浏览器中众所周知的位置。

我有一个例子here。我在Windows 10上使用IE“Edge”(v11,可执行文件v11.1000.14931.0)以及Windows 10上的Microsoft Edge (v14,可执行文件也是v11.0.14931.1000)进行了测试。检查了元素,src属性对于一些给定的场景是正确的。