我有一个<form>
标记的页面。在form
内部,<form>
标记的变体末端有很多html和一些内联javascript。
我听文件加载事件。我可以100%确定,当文件加载被触发时,所有这些内联javascript代码都已经执行了吗?
标记示例:
<body>
<form>
--html controls---
<script type="text/javascript">
--some code to run here--
</script>
</form>
</body>
我的回答是肯定的,内联javascript将在文档加载之前执行,但我想找到证据 感谢。
修改
live demo
仅当加载了所有html控件并且加载和解释了javascript(内联或带有src
属性)时才会触发文档加载。我对此声明是否正确?
答案 0 :(得分:4)
除非您在domready回调函数中放置要执行的代码,否则当您加载页面时(在domready之前),您的内联javascript代码将立即执行。
答案 1 :(得分:1)
一旦脚本标记完成解析,内联脚本将立即执行,因此您将无法访问文档的其余部分。另一方面,它允许您在文档中的该点编写其他HTML。
请注意,Firefox 3.5有一个错误,您可以在内联脚本中设置defer属性,它不会立即执行。这种非标准行为在Firefox 3.6中得到修复。
答案 2 :(得分:0)
我认为你没有保证 如果它是一个缓慢的javascript(emscripten),我认为在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:
onload = script [CT] 用户代理完成加载时发生onload事件 窗口或FRAMESET中的所有帧。这个属性可能是 与BODY和FRAMESET元素一起使用。
所以我找不到保证,你可以测试(有重量的东西,例如来自这里的演示https://github.com/kripken/emscripten/wiki),hpe为最好的,或者在你的on的保存中建立你的内联天气脚本完成