javascript - HTML页面中JS的执行顺序

标签 javascript html

假设我有这样的东西

<script type="text/javascript" src="somefile.js"></script>
<div>something</div>
<script type="text/javascript">
// Some INLINE javascript
</script>

是否(所有浏览器)保证当执行内联 js 代码时,somefile.js 已被加载并且它可以在它之前的 div 上运行?

最佳答案

保证您可以从 somefile.js 访问代码。

然而,此时 DOM 尚未准备好,因此您无法访问 div。如果您想这样做,请使用以下结构:

<div>something</div>
<script type="text/javascript">
// document.write calls go here, not in onReady

function onReady() {
    document.getElementsByTagName('div')[0].setAttribute('class', 'loaded');
    // Or other inline JavaScript
}

if (document.addEventListener) {
    document.addEventListener('DOMContentLoaded', onReady, false);
} else {
    window.onload = onReady;
}
</script>

jQuery 大大简化了它,您只需编写

$(function() {
   // inline code ...
});

关于javascript - HTML页面中JS的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6396364/

相关文章:

javascript - HTML 和 javascript 之间的关系。前端开发基础

javascript - 验证用户名和密码失败 - 客户端 session

javascript - 获取矩形区域的 HTML

javascript - WP 音频简码和 AJAX

html - 处理文本区域高度跨浏览器

javascript - 分配函数范围结束后,纯 javascript onclick 变为未定义

javascript - 为什么通过 Ajax 调用调用我的 Controller 时我的页面没有刷新

javascript - AngularJs - 在具有多个选择的选择框的选项中添加字形和数据

javascript - IBM Worklight WL.JSONStore.QueryPart()。 json存储错误

html - 如何在iframe中隐藏滚动条,但仍然可以滚动