2014-02-21 2 views
0

Я создаю функцию alerts() и назову ее в своем теге скрипта, то есть в <head> Акт полностью в ящике на живом редакторе, поэтому мне нужно поставить код пользователя в голове, как правило, все функции вызова в голове, но здесь он показывает ошибку! Я хочу сохранить код пользователя и запустить его, когда DOM завершает работу! нравится:Как удерживать вызываемую функцию до тех пор, пока document.body не вернется в завершение

HTML

<head> 
    <script src='alertResource.js' type ='text/javascript' ></script> 

     <script> 

      alerts(); 

     <script> 

    </head> 

alertResource.js

function alerts(msg) { 
    var _M_DoWn = { x: '', y: '', isdown: '' }; 
    var _A = document.createElement('HTML_alert'); 
    _A.id = "codeit_HTML_alert"; 

    insertAfter(document.body, _A); 

} 

    function insertAfter(refrNode, newNode) { 
    refrNode.parentNode.insertBefore(newNode, refrNode.nextSibling); 
    } 

Таким образом, всякий раз, когда я называю alerts() он показывает мне ошибку в моей консоли:

Ошибка

Uncaught TypeError: Не удается прочитать свойство «ParentNode» нулевого

Я думаю, появляется ошибка, потому что моя функция вызывается до загрузки DOM. Теперь я хочу сделать что-то вроде: задержать любой вызов функции до тех пор, пока DOM не будет готов. Я знаю, как проверить readystate, но не в состоянии реализовать его, как в моем случае.

Любая идея? Что мне нужно сделать для этого?

+0

Вы также можете использовать $ (документ) .ready (function() { // код }); – Akhlesh

+0

Что я также использую? @Akh –

+0

извините, по ошибке я написал, что – Akhlesh

ответ

1

называют вашу функцию после того, как страница полностью загружена с помощью этого:

Использование JavaScriopt

document.addEventListener('DOMContentLoaded', function() { 
    alerts(); 
}, false); 


Использование JQuery

$(function(){ 
    alerts(); 
}); 
+0

Любое подобное решение в javascript ?? –

+0

@AshishMishra посмотреть, как jQuery реализовать его, например.g: http://stackoverflow.com/a/800010/1414562 –

+2

Лучший способ - добавить код javascript или refrence внизу html, т. е. в последнем из html-кода – Akhlesh

0

Пожалуйста, используйте это. (Javascript путь)

window.onload=function(){SomeJavaScriptCode}; 
<body onload="SomeJavaScriptCode"> 
1

Когда вы звоните в «Оповещения» документ не полностью загружен и «refrNode.parentNode» возвращение нуль.

Попробуйте это, без JQuery

<body onLoad="alerts();"> 
.... 
</body> 
0

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

document.addEventListener('DOMContentLoaded', function(){ 
    alerts(); 
}); 
Смежные вопросы