showModalDialog后第一次不加载onload

showModalDialog后第一次不加载onload

问题描述:

这是调showModalDialog的方法
window.showModalDialog("aa.jsp",{},"dialogHeight:400px;dialogWidth:320px;center:yes;resizable:no;scroll:no;status:no;");
调用后在弹出页中定义onload方法去给一个文本框赋值,然后加载一棵树
window.onload = function()
{
document.getElementById("aa").value = "aaaa";
initTree();
}
经常会在第一次打开这个页面的时候不加载onload方法(文本框也没有赋值,树也没加载),但是如果不加载,再点一次就好了,剩下的基本上每次都没问题,请问有人知道是什么原因吗
先谢了

onload虽然道理上说是加载完之后执行。但是有区别,比如
1,window.onload=initTree()这样调用会按顺序调用,然后执行页面下面部分。
2,你的这种写法是加载完之后调用

建议你在页面结尾用脚本
[code="js"] <br> document.getElementById(&quot;aa&quot;).value = &quot;aaaa&quot;; <br> initTree(); <br> [/code]

这个问题是不是jsp加载比较慢的原因?
你吧jsp换成一个简单的html测试下 看第一次执行onload不··

[quote]
经常会在第一次打开这个页面的时候不加载onload方法(文本框也没有赋值,树也没加载),但是如果不加载,再点一次就好了,剩下的基本上每次都没问题,请问有人知道是什么原因吗
先谢了
[/quote]
1、你是用什么浏览器测试的?
2、没赋值不一定onload没执行,所以你要在前面加一个alert语句明确是否onload没有执行。
3、增加如下meta,看看是否是缓存原因:
[code="java"][



/code]

执行是有执行顺序的 就想我刚才所说
window.onload=initTree() 和 initTree是有区别的,而你放在底部,在dom完成之后就可以调用了。

好了就采纳咯 哈哈

[quote]
不过我没写onload方法,把一开始要执行的操作知己诶写到javascript里就好了
[/quote]
“写到javascript”是什么意思?直接放置在外部js文件?