gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-27 22:32:01 28 4
gpt4 key购买 nike

我的页面在除 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>

最佳答案

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

就目前而言,init() 试图在加载 JS 文件时立即运行,这会引发错误,因为 DOM 尚未加载。

关于javascript - IE 不能正确运行远程 JS 但本地运行正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17044958/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com