在下载html片段的AJAX请求之后,xmlhttp.readyState在下载完成后转到4。看起来readyState == 4对浏览器在呈现下载内容方面的进展没有任何说明(并且应该没有说,imo)。
因此,如果我的JS在开始使用下载的html之前仅依赖readyState == 4,那么当JS开始执行时,我很有可能获得'whatever_var is undefined'。我不希望这样。
如何确定浏览器何时完成呈现?
我没有使用jquery或任何其他框架。
显示问题的测试用例:http://www.sellmycalls.com/cgi-bin/chain然后当出现短页时,按左侧菜单框中的任一绿色按钮(标记为“所有选项”和“监视列表”)。重复几次,出现问题。如果页面挂起,请关闭其标签并将其显示在新标签中。
使用Firebug / FF查看页面上的错误;我没有在任何其他浏览器中运行声明。
首次加载此页面时,您可能会看到一些介绍材料。使用左侧菜单框中的“隐藏介绍”/“隐藏帮助”未着色按钮关闭介绍框。控制台上的错误消息将类似于“cx_usrname未定义”。 (此页面上还出现了另一个错误:“未处理的异常......”这是一个我不担心的另一个问题。)
答案 0 :(得分:1)
设置一个功能,该功能在您开始与网站交互的所有密集内容之后运行。 IE,在应用程序首次运行时隐藏“开始”按钮,然后在所有其他代码运行后通过函数调用启用它。