Как использовать document.onload в другой функции? - PullRequest
0 голосов
/ 12 января 2019

У меня есть эта функция:

function myfunc_embed() {
document.onload = function(){
   // myScript
  };
};

Я звоню myfunc_embed() со страницы HTML. Я хочу, чтобы это активировать при загрузке DOM HTML-страницы. Похоже, это не работает. Однако, если вместо document.onload() поставить settimeout, он будет работать нормально. Я довольно новичок в JavaScript. Что-то мне не хватает?

Примечание: Он должен вызываться при загрузке DOM.

Редактировать: Код, который я использую для вызова myfunc_embed() здесь -

<script src="somewebsite.com/JS/some-func.js"></script> <script>;myfunc_embed();</script>

Этот скрипт написан на html-странице внутри элемента body. Я никак не могу изменить положение кода. Полный код: https://pastebin.com/f7GSFuNR

Ответы [ 3 ]

0 голосов
/ 12 января 2019

Вам не нужно использовать способ, которым вы его использовали попробуйте это

<body onload="myFunction()">


function myFunction(){
   // myScript
  };

или вы можете использовать плагин javaScript под названием Jquery, который может делать то, что вам нужно, чтобы понравиться

$(document).ready(()=>{
   // your script
});

в этой реализации код запускается после загрузки всей страницы, поэтому вам не нужно беспокоиться о том, где вы разместите этот код, в этом вся прелесть Jquery

0 голосов
/ 12 января 2019

Если onload не вызывается, это означает, что вы регистрируете его слишком поздно. Проверьте document.readyState .

function myScript () {
    // ...
}
function myfunc_embed() {
    if (document.readyState === 'complete') {
        myScript();
    } else {
        document.onload = function () {
            myScript();
        }
    }
};
0 голосов
/ 12 января 2019

Вам не нужно помещать его в функцию 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...