Javascript 获取IE和Firefox错误:解析值时出错';xxx';。声明被撤销

Javascript 获取IE和Firefox错误:解析值时出错';xxx';。声明被撤销,javascript,html,css,Javascript,Html,Css,以下是指向我的页面的链接:。我在所有浏览器上都遇到了问题,虽然它在Firefox和Chrome中工作,但在IE中不工作。我需要修复Firefox和IE中出现的这个解析错误,以便它a)在Fox中不显示错误,b)在IE中实际工作。请帮助!谢谢大家! 有几件事你应该看看 首先,在IE(6,7,8)window.innerHeight中不存在,您可以使用以下选项: var h = (document.documentElement.clientHeight/2)-17; 另一个问题是,一旦字母在屏幕中

以下是指向我的页面的链接:。我在所有浏览器上都遇到了问题,虽然它在Firefox和Chrome中工作,但在IE中不工作。我需要修复Firefox和IE中出现的这个解析错误,以便它a)在Fox中不显示错误,b)在IE中实际工作。请帮助!谢谢大家!

有几件事你应该看看

首先,在IE(6,7,8)window.innerHeight中不存在,您可以使用以下选项:

var h = (document.documentElement.clientHeight/2)-17;
另一个问题是,一旦字母在屏幕中央匹配,就不会停止已经启动的计时器。这意味着它们将继续运行并生成错误,因为变量topLetters和bottomLetters现在大于数组topPos和bottomPos的大小

函数setInterval返回对其计时器的引用,因此可以使用以下代码

var topTimer, bottomTimer;
function startSnowing() {
    topTimer = setInterval("topFall()",10);
    bottomTimer = setInterval("bottomRise()",10);
 }
将topFall()和bottomRise()方法更改为

function bottomRise() {
    if (bottomLetters < bottomPos.length) {
        document.getElementById("bottomLetters").style.bottom = bottomPos[bottomLetters] + "px";
        bottomLetters++;
    }
    else {
        clearInterval(bottomTimer);
    } 
}
函数底升(){
if(底部字母<底部位置长度){
document.getElementById(“bottomLetters”).style.bottom=bottomPos[bottomLetters]+“px”;
底部字母++;
}
否则{
清除间隔(底部计时器);
} 
}

希望这有帮助

在Firefox 12和IE9中它对我很有效。我没有看到任何错误。我从来没有安装过ie9,现在这样做…@BrianTucker你错过了,只是让我自己的虚拟机对IE6、IE7和IE8有一种本地的感觉。。