最近在写javascript代码的时候发现一个比较奇怪的问题,
举例来说,两行js代码
document.write(d); //d是通过js代码生成的一个菜单
d.open(1); //打开菜单的第一项
有的时候,d.open这句是不起作用的。但是我在这句的前面加上一句alert想进行调试的时候,就又好使了。
类似的情况在以前写一个email 提示并检查格式的功能也碰到过。
非常怀疑是在d.open这一句执行的时候,document.write这句 还没有执行完成。
于是加了一句延时的操作,把 d.open修改为setTimeout("d.open(1)", 10);
稍等一下进行执行。结果就好用了。
但是仍然感觉比较奇怪,具体原因待考察。