window.open传值问题,请js高手解决下。。。。

Jomwave 2009-03-11 10:14:41
logout = window.open("jsp/module/commision/common/tree/sys_user_logout/main_frame.jsp?type=",
"mydialoglogout", "dialogWidth:600px;dialogHeight:400px;status:1;help:0;scroll:0");
logout.window.frames.botton_submit_frame.document.getElementById("theEndValue").value=theEndValue;

为什么有时候值theEndValue能传过去,有时候传不过去报logout.window.frames.botton_submit_frame.document。。缺少对象
...全文
554 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
esena 2009-03-11
  • 打赏
  • 举报
回复
可以把思路颠倒一下:

你在opener那里写个函数比如叫 sendValueForNewWindow
在新窗口加载完毕后,比如可以在onload中调一个方法,比如叫 getValueFromOperator
这个方法中直接调 opener.sendValueForNewWindow(...)
不会受到加载时间的限制了
Jomwave 2009-03-11
  • 打赏
  • 举报
回复
没法用iframe我是用open打开一个选择人员树的窗口,必须要弹出窗口,其中为了保存已经操作的记录只能传递过去参数,然后在加上新选择传递回来
luojihaidao 2009-03-11
  • 打赏
  • 举报
回复
那你用iframe吧 
Jomwave 2009-03-11
  • 打赏
  • 举报
回复
url不行,我传递的参数是一个几万字符的字符串,所以采用隐藏域来解决的
dyydingding 2009-03-11
  • 打赏
  • 举报
回复
应该是 前后执行顺序问题!在页面还没加载完就去传值 所以会报错!
在没有加载完的情况下您用延迟也是不管用的。
建议和楼上的一样 用传值的方式来做。 如果只想不报错 可以判断下是否是null 跳过此操作!
2009-03-11
  • 打赏
  • 举报
回复
你用open打开的页面还没加载完,所以就找不到对象了,

可以在url中把参数传过去..
Jomwave 2009-03-11
  • 打赏
  • 举报
回复
我加上时间了,还是可能出这个问题a.window.setTimeout(a.window.frames.botton_submit_frame.document.getElementById("theEndValue").value=theEndValue,1000)
luojihaidao 2009-03-11
  • 打赏
  • 举报
回复
document.getElementById("theEndValue") 原因有可能是这个对象 加载 时间问题。
celly2008 2009-03-11
  • 打赏
  • 举报
回复
logout.window.frames.botton_submit_frame.document.getElementById("theEndValue").value=theEndValue;
是不是应该是
logout.frames["botton_submit_frame"].document.getElementById("theEndValue").value=theEndValue;
Jomwave 2009-03-11
  • 打赏
  • 举报
回复
已经解决了,确实换了个思路,用frameset的onload实现的多谢esena了
Jomwave 2009-03-11
  • 打赏
  • 举报
回复
frameset跟body还不能一起使用
Jomwave 2009-03-11
  • 打赏
  • 举报
回复
问题是我的参数要传到一个打开页面的iframe里边的页面去,这个思路只能到frameset那个页面,再往下走不是很好走吧

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧