pg_guo
2011-08-22 11:47
浏览 314

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方法(文本框也没有赋值,树也没加载),但是如果不加载,再点一次就好了,剩下的基本上每次都没问题,请问有人知道是什么原因吗
先谢了

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • AngelAndAngel 2011-08-22 12:50
    已采纳

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

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

    点赞 评论
  • renpeng301 2011-08-22 12:54

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

    点赞 评论
  • myali88 2011-08-22 14:05

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



    /code]

    点赞 评论
  • AngelAndAngel 2011-08-24 09:29

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

    好了就采纳咯 哈哈

    点赞 评论
  • myali88 2011-08-24 09:39

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

    点赞 评论

相关推荐 更多相似问题