Javascript 文档之前的JS

Javascript 文档之前的JS,javascript,Javascript,我想在文档准备好之前调用JS中的函数,但我不知道如何。。。请帮我找个人。谢谢 var modal=document.getElementById('myLogin'); var btn=document.getElementById(“myBtn2”); var span=document.getElementsByClassName(“关闭”)[0]; btn.onclick=函数(){ openFunc(); }; 函数openFunc(){ modal.style.display=“块”

我想在文档准备好之前调用JS中的函数,但我不知道如何。。。请帮我找个人。谢谢

var modal=document.getElementById('myLogin');
var btn=document.getElementById(“myBtn2”);
var span=document.getElementsByClassName(“关闭”)[0];
btn.onclick=函数(){
openFunc();
};
函数openFunc(){
modal.style.display=“块”;
}
span.onclick=函数(){
closeFunc();
};
函数closeFunc(){
modal.style.display=“无”;
}
window.onclick=函数(事件){
如果(event.target==模态){
modal.style.display=“无”;
}

};只需在ready语句之前调用head标记中的函数,但是您试图获取的元素将不存在,因此您的变量将为null…

您可以在它引用的所有元素之后立即将其放入脚本标记中。这样您就知道DOM的一部分已经准备好了,但不必等待整个过程。

为什么要这样做?您试图通过id获取的所有元素都将不存在。为什么要在
domReady
之前调用某个元素?此外,具体是什么和什么时候?我认为所有脚本标记都是在文档准备好之前执行的。除非它有一个
defer
属性,否则它可能是重复的,所以它是没有意义的?我可以在文档结束后留下它?告诉某人做一些你知道会导致他们的代码无法正常运行的事情并不是回答问题的好方法。这只会导致更多需要澄清的混乱。谢谢。我才刚开始使用JS,所以最好的是,当我得到新代码时,它解决了我的问题…:/虽然这回答了这个问题,但可以说它可以使用一个限定符,如“您确定要这样做吗?为什么在组装DOM之前需要这样做?”@JaredSmith Why?如果他希望这些按钮在渲染后立即可用,那么这是放置脚本的最佳位置。我不明白为什么这么多人主张将所有脚本放在文档就绪处理程序中。你是对的,我知道你知道我要说什么,但是,如果脚本不是内联的,它将阻塞直到获取,OP是否理解这一点,或者在保持内联js与最大可用性或同步与异步脚本加载之间的差异方面的折衷是什么,这是值得怀疑的。这就是为什么每个人都会重复“将脚本标记放在末尾并使用
DOMContentLoaded
事件”行的原因。如果你知道得更好,那么你就知道得更好;如果你不知道,你可能应该尽可能地保持简单。@JaredSmith这是一个很好的观点。我意识到OP是相当新的,我想告诉他一种有效的方法只会让他感到困惑;同时说服他不要使用它。我可以看出,这个答案以后可能会变得更加混乱,显然,如果他开始在没有充分理由的情况下将所有脚本分散在DOM中,这将是很糟糕的。