Javascript IE8 SCRIPT87:参数无效。
所以我有一个典型的讨厌的没有解释的IE8错误。它写“Script87:无效参数”。 代码如下:Javascript IE8 SCRIPT87:参数无效。,javascript,internet-explorer-8,styles,loader,Javascript,Internet Explorer 8,Styles,Loader,所以我有一个典型的讨厌的没有解释的IE8错误。它写“Script87:无效参数”。 代码如下: var loaded = false; function loader(wrapperId) { var Loader = document.createElement("div"); var image = document.createElement("img"); image.src = "../scripts/loader/1.g
var loaded = false;
function loader(wrapperId) {
var Loader = document.createElement("div");
var image = document.createElement("img");
image.src = "../scripts/loader/1.gif";
Loader.style.marginTop = ((window.innerHeight / 2) - image.height) + 5 + "px";
//error appears right here. ^
Loader.style.marginLeft = ((window.innerWidth / 2) - (image.width)) + 5 + "px";
Loader.style.display = "block";
Loader.id = "loader";
Loader.appendChild(image);
document.body.appendChild(Loader);
var imLoading = setInterval(function () {
if (loaded == true) {
var containerLoader = document.getElementById(wrapperId);
var loaderDivBar = document.getElementById(Loader.id);
loaderDivBar.innerHTML = "";
containerLoader.style.visibility = "visible";
document.body.removeChild(loaderDivBar);
document.body.overflow = "visible";
clearInterval(imLoading);
}
}, 50);
//place this call behind body object.
}
现在,除了IE8之外,它在所有方面都能很好地工作。
这是它把错误吐出来的部分:
Loader.style.marginTop = ((window.innerHeight / 2) - image.height) + 5 + "px";
Console.log
window.innerHeight
就在错误行之前,您看到了什么?结果是未定义的,是在IE9中实现的…在图像实际加载之前,您正在读取图像的宽度和高度。如果您已将错误缩小到一行,您不认为检查计算结果会有所帮助吗?当我进行控制台日志调用时,IE8确实返回未定义。Teemu,谢谢,我不知道它是在IE9中实现的,这也许可以解释它。有什么规避建议吗?@user2588440设置body{height:100%}
并检索.body.getBoundingClientRect().bottom
可能是一个解决方案。()