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');
});
任何帮助表示赞赏!!!
谢谢
答案 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
属性对于一些给定的场景是正确的。