Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is inline/block Javascript executed before document-ready?

Assuming one has inline Javascript code in a HTML document (the body for example), is this piece of Javascript always executed before JQuery document-ready code?

For example, is the following safe?

...
<body>
    <script type="text/javascript">
        var myVar = 2;
   </script>
   ...
</body>

...
$(document).ready(function() {
    alert('My Var = ' + myVar);
}

If not, how can I make it safe knowing myVar is defined in an inline/block code?

like image 391
Jérôme Verstrynge Avatar asked May 18 '13 12:05

Jérôme Verstrynge


1 Answers

Yes, the above code is safe. Inline JS is executed as it is encountered while the document is being parsed top to bottom. The document ready handler is executed when the document is ready (obviously), and it won't be ready until the whole document has been parsed including inline scripts.

Note that you don't really need a document ready handler if you include the code that it wraps as the last thing in the document body, because at that point not only will other inline JS have executed but all of the document elements will have been added to the DOM and thus be accessible from JS.

like image 60
nnnnnn Avatar answered Sep 27 '22 17:09

nnnnnn