我希望根据页面加载中的事件顺序找出自调用 js 函数发生的顺序。我一直在谷歌上搜索这个问题的答案,但没有找到任何确定的答案。
至于这实际上适用于什么,我正在根据其中一个内部元素的高度调整外部元素的高度(这将根据文本长度和屏幕宽度而有所不同)
var text_elem = document.getElementById('text_elem');
var textElemHeight = text_elem.offsetHeight;
var newBkgdHeight = 96 + textElemHeight;
document.getElementById('background').style.height = newBkgdHeight + "px";
到目前为止,这个块是在自调用函数中执行的,而不是在 onload 事件中执行,因为 onload 事件有一个奇怪的效果,在页面加载后高度调整一秒或两秒,但只是想确保使用自调用函数是安全的,并且在 HTML DOM 加载之前不可能执行其中的代码。
编辑:
请注意,使用自调用函数或 IIFE 可以正常工作,我只是想确保它是安全的并且能够始终如一地工作,并且能够更好地向同事解释这一点。
以下是这种情况的相关代码:
<style type="text/css">
#background {
height: 150px;
}
</style>
......
......
<div id="background">
<div id="text_elem">
${text loaded from somewhere else}
</div>
</div>
......
......
<script>
(function() {
var text_elem = document.getElementById('text_elem');
var textElemHeight = text_elem.offsetHeight;
var newBkgdHeight = 96 + textElemHeight;
document.getElementById('background').style.height = newBkgdHeight + "px";
})();
</script>