我有一个非常特殊的情况。
我正在调试一个用相当复杂(而且速度很慢)的框架编写的 Web 应用程序中的问题。
作为代码的一部分,它在 YUI 中加载并运行以下脚本:
function() {
YU.Event.onDOMReady(function() { init(); });
}
init()
JS函数在哪里。
问题:有时(大约 1/2 次),当调用 init() 函数时,似乎还没有加载 DOM。更准确地说,document.getElementById();
调用返回null
值,当我加载 Internet Explorer 调试器 (IE8) 并在 getElementById()
调用行上设置断点时,调试器的 HTML 选项卡仅显示"Loading..."
(该应用程序与 FireFox 不兼容,因此我无法使用 Firebug)
我会很感激关于为什么会发生这种情况(只有 50% 的时间)以及如何进行调查的任何想法。
如果这有帮助,当有人对应用程序进行更改时问题就开始了,这涉及通过 appendChild() 向 DOM 动态添加一些东西
请注意,我正在专门寻找如何解决过早onDOMReady()
调用,而不是像“getElementById()
在循环中调用 setTimeout 直到非空的解决方法”