javascript在localhost中工作,但在托管时不工作?

javascript在localhost中工作,但在托管时不工作?,javascript,hosting,Javascript,Hosting,我试图在我的网站上实现一个简单的图像滑块,但它似乎不想工作。什么也没发生。到目前为止,我想不出有什么效果,所以我想在这里问一下。这是我的密码 window.onload = function(){ image = document.getElementById("slideShow"); index = 0; setInterval(slide, 3000); }; function slide(){ index++; if(index >= 6) {

我试图在我的网站上实现一个简单的图像滑块,但它似乎不想工作。什么也没发生。到目前为止,我想不出有什么效果,所以我想在这里问一下。这是我的密码

window.onload = function(){
   image = document.getElementById("slideShow");
   index = 0;

   setInterval(slide, 3000);
};

function slide(){
    index++;
    if(index >= 6) {index = 0;}
    path = "images/Slideshow/image"+index+".jpeg";

    image.setAttribute("src",path);
}

window.onload相当俗气,因为似乎没有人对onload的真正含义达成一致

我建议你使用

document.addEventListener("DOMContentLoaded", function(){
    // code
});
你应该注意的另一件事是加载缓慢。如果脚本在ready事件触发后加载,那么您的代码将永远不会触发

解决方案是将ready函数包装为一个单独的模块

var eventReady;
(function(){
    var funcArr = [];
    eventReady = function(func){
        funcArr.push(func);
    }
    document.addEventListener("DOMContentLoaded", function(){
        for(var i=0;i<funcArr.length;i++){
            try{
                funcArr[i]();
            }
            catch(e){
                throw(e);
            }
            finally{
                continue;
            }
        };
        eventReady = function(func){
            func();
        }
    });
})();

控制台说什么?我的第一个猜测是脚本没有及时加载。“不推荐使用getPreventDefault()。请改用defaultPrevented。”是否确定图像路径正确?这是一个相对路径,因此它将与页面URL相对。如果在
slide()
函数中放入
console.log(“hello”)
语句,它是否被调用过?在你建议之后,我才发现,我进入控制台,它说找不到.js文件。我在页面上的标签上打错了名字。多么愚蠢的错误,不过我很高兴我发现了!谢谢大家的帮助。你可以删除你的问题,也可以回答你自己的问题。但是,你应该用这两种方法中的一种来关闭它。window.onload没有什么“俗气”的。它总是发生在DOMContentLoaded之后,所以不清楚您建议如何切换才能解决问题。是的,这是标准。但是浏览器实现它们的方式不同。但即使这不是问题所在,我也提供了一个额外的解决方案。如果问题真的解决了,你应该很容易投反对票。这应该是一个错误的陈述,你不这样认为吗?我看不到你的答案中有任何解释,说明它如何可能解决OP的问题,而且答案中包含了几个错误的断言。这就是投反对票的原因。
eventReady(function(){
    // code
})