我的页面适用于除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>
答案 0 :(得分:3)
将window.onresize = init();
更改为window.onresize = init;
就目前而言,init()
正在尝试在加载JS文件时立即运行,因为尚未加载DOM而导致错误。