IE不能正确运行远程JS,但本地运行正常

时间:2013-06-11 13:10:48

标签: javascript jquery html css internet-explorer

我的页面适用于除IE 10以外的所有浏览器。当我在IE 10本地运行此页面时,似乎没有任何问题,只有当我用IE 10远程打开页面时。

JavaScript应该用主文本测量div,并设置屏幕外的div的高度和宽度。这是由IE 10完成的。必须设置这些div的宽度,否则当单击菜单中的项目时,将无法正确设置动画。

我检查了已弃用的功能,但没有找到。 我检查了语法,没有错。 (据我所见) IE中的控制台不会报告任何错误。

任何人都知道为什么本地它在每个浏览器中都能正常工作,但远程显示它的唯一浏览器是IE?

编辑:

我已经删除了init中的函数括号,因此DOM可以启动,尽管这不能解决问题。

脚本(嵌入在页面的头部):

<script src="scripts/jquery-1.10.1.min.js"></script>
<script>
var mainTextDiv = null;
var animate;
var acc = 0;
var currentTab = "home";
var nextTab;
var working = 0;
var bar = 600;
var divW;

function init(){


    onWC(currentTab);
    document.getElementById(currentTab).style.width = 'auto';
    divW = document.getElementById(currentTab).offsetWidth;
    document.getElementById("home").style.width = divW + "px";
    document.getElementById("profile").style.width = divW + "px";
    document.getElementById("news").style.width = divW + "px";
    document.getElementById("forums").style.width = divW + "px";
    document.getElementById("webshop").style.width = divW + "px";
    document.getElementById("status").style.width = divW + "px";

}

function onWC(tab){
    var divh = document.getElementById(tab).offsetHeight;
    document.getElementById('tabcontainer').style.height = ( divh + 50 ) + "px";
}
function moveDiv(tabName){
    if (currentTab == tabName){
        return;
    }
    if (working == 1){
        return;
    }
    working = 1;
    nextTab = tabName;
    removeDiv();
}
function removeDiv(){
    mainTextDiv = document.getElementById(currentTab);
    mainTextDiv.style.left = parseInt(mainTextDiv.style.left) + (0.5+acc) + "px";
    if (parseInt(mainTextDiv.style.left) > 2000){
        mainTextDiv.style.left = 2000 + "px";
        onWC(nextTab);
        getDiv();
        return;
    }

    acc += 0.15;

    animate = setTimeout(removeDiv,10);
}
function getDiv(){
    mainTextDiv = document.getElementById(nextTab);
    mainTextDiv.style.left = parseInt(mainTextDiv.style.left) - (0.5+acc) + "px";   
    if (parseInt(mainTextDiv.style.left) <= 0){
        mainTextDiv.style.left = 0 + "px";
        currentTab = nextTab;
        working = 0;
        return;
    }

    acc -= 0.15;

    animate = setTimeout(getDiv,15);
}
window.onload = init;
window.onresize = init;

$(function() {
    $("#menu ul li a").hover(
        function(){
            $(this).css("background-color", "#525252");
            $(this).css("color", "#FFF");
        },
        function() {
            $(this).css("background-color", "#FFF");
            $(this).css("color", "#525252");
        }
    );
});
</script>

1 个答案:

答案 0 :(得分:3)

window.onresize = init();更改为window.onresize = init;

就目前而言,init()正在尝试在加载JS文件时立即运行,因为尚未加载DOM而导致错误。