2012-01-20 40 views
0

我有一个<form>标签页。在form的内部,有很多html以及<form>标记的各个末尾处的一些内嵌JavaScript。
而我听文档加载事件。我能100%确定,当文档加载将被触发时,所有这些内嵌JavaScript代码已经被执行了吗?标记
例子:如果内嵌JavaScript代码将在文档加载事件之前执行?

<body> 
    <form> 
    --html controls--- 
    <script type="text/javascript"> 
     --some code to run here-- 
    </script> 
    </form> 
</body> 

我的想法,答案是肯定的,JavaScript的将文件加载之前执行内联,但我想找到证据。
谢谢。

编辑仅

live demo
文献负载的火灾时,所有的HTML控制加载和JavaScript(inline或与src属性)加载和解释。我是否纠正了这种说法?

+1

最好的回答方法是试试! – cambraca

+0

绝对同意:) – Kai

回答

4

除非您将要执行的代码放在domready回调函数中,否则当您加载页面时(domready之前),将立即执行内联JavaScript代码。

+0

澄清,答案只是'是'。它会在别的之前执行 – Evert

1

只要脚本标记完成解析,内联脚本就会立即执行,因此您将无法访问文档的其余部分。另一方面,它允许您在文档中的那个位置编写额外的HTML。

请注意,Firefox 3.5有一个错误,您可以在内联脚本上设置defer属性,并且它不会立即执行。 Firefox 3.6中修复了这种非标准行为。

0

我认为你没有任何保证 如果它是一个缓慢的JavaScript(emscripten),我认为这是可能的代码仍然beeing执行onload火灾。

,但我找不到清晰的文档: https://developer.mozilla.org/en/DOM/window.onload http://msdn.microsoft.com/en-us/library/ie/cc197055%28v=vs.85%29.aspx

http://www.w3.org/TR/html4/html40.txt:当用户代理完成加载一个 窗口或FRAMESET内所有帧

的onload =脚本[CT] 发生onload事件。该属性可能是 与BODY和FRAMESET元素一起使用。

所以我找不到担保,您可以测试(有很重的东西,例如,从这里https://github.com/kripken/emscripten/wiki演示),HPE为最佳,或建立在你对一个savequard支票的天气里内嵌脚本完成

相关问题