Javascript 如何在另一个函数中使用document.onload?
我有这个功能:Javascript 如何在另一个函数中使用document.onload?,javascript,function,Javascript,Function,我有这个功能: function myfunc_embed() { document.onload = function(){ // myScript }; }; 我从html页面调用myfunc\u embed()。我希望在加载html页面的DOM时激活它。看起来好像不行。但是,如果我将settimeout而不是document.onload(),它就可以正常工作。我对JavaScript非常陌生。我有什么遗漏吗 注意:加载DOM时必须调用它 编辑:我用来调用myfunc\u em
function myfunc_embed() {
document.onload = function(){
// myScript
};
};
我从html页面调用myfunc\u embed()
。我希望在加载html页面的DOM时激活它。看起来好像不行。但是,如果我将settimeout而不是document.onload()
,它就可以正常工作。我对JavaScript非常陌生。我有什么遗漏吗
注意:加载DOM时必须调用它
编辑:我用来调用myfunc\u embed()
的代码在这里-
;myfunc_嵌入()代码>
这个脚本是在body元素内的html页面中编写的。我无法更改代码的位置。
完整代码:您不需要将其置于onload函数中,脚本在不使用onload的情况下可以正常工作。您只需要从HTML调用主函数
function myfunc_embed(id){
id.addEventListener("load", function(event) {
alert("something loaded.");
});
}
如果要在加载特定元素时调用函数,只需在声明元素后调用函数,如下所示:
<h3 id="yourid">something</h3>
<script type="text/javascript">
myfunc_embed('yourid');
</script>
什么
myfunc_嵌入(“您的ID”);
您不需要使用您使用它的方式
试试这个
<body onload="myFunction()">
function myFunction(){
// myScript
};
在这个实现中,代码在整个页面加载后运行,因此您无需担心将代码放在何处,这就是Jquery的妙处。如果没有调用onload,则意味着您注册它太晚了。检查
您如何调用
myfunc\u embed
?我们不确定是否调用了myfunc\u embed
。最好先等OP澄清。@CertainPerformance我已经编辑了我的问题。我需要在整个DOM加载时加载它。@Asifurahman您是从head标记调用此函数吗?@Kashan它在body标记中它很可能会显示错误“函数未定义”,因为您调用的是在声明之前不能更改body html。在主体内部有一个特定的区域,我可以在其中放置调用函数的代码。但不幸的是myScript()代码>不会开火。我已经更新了我的问题,也许新信息会对您有所帮助。myScript
将在调用时执行。使用console.log()
查看执行的操作。
$(document).ready(()=>{
// your script
});
function myScript () {
// ...
}
function myfunc_embed() {
if (document.readyState === 'complete') {
myScript();
} else {
document.onload = function () {
myScript();
}
}
};