假设我有这样的东西
<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/