如何在另一个函数中使用document.onload?

时间:2019-01-12 06:25:11

标签: javascript function

我具有此功能:

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

3 个答案:

答案 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
})