我具有此功能:
function myfunc_embed() {
document.onload = function(){
// myScript
};
};
我从html页面调用myfunc_embed()
。我希望在加载html页面的DOM时激活它。看起来不起作用。但是,如果我使用settimeout代替document.onload()
,则可以正常工作。我刚接触JavaScript。有什么我想念的吗?
注意:在加载DOM时必须调用它。
编辑:我用来调用myfunc_embed()
的代码在这里-
<script src="somewebsite.com/JS/some-func.js"></script>
<script>;myfunc_embed();</script>
此脚本写在body元素内的html页面中。我无法更改代码的位置。 完整代码:https://pastebin.com/f7GSFuNR
答案 0 :(得分:0)
您不需要将其放在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>
答案 1 :(得分:0)
您无需使用使用方式 试试这个
<body onload="myFunction()">
function myFunction(){
// myScript
};
或者您可以使用一个名为Jquery的javaScript插件来完成您需要的操作
$(document).ready(()=>{
// your script
});
在此实现中,代码在整个页面加载后运行,因此您不必担心将代码放到哪里,这就是Jquery的优点
答案 2 :(得分:0)
如果未调用onload,则表示您注册得太晚了。选中document.readyState。
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
self.imageview.image = selectedImage
})