100分求解 -----从showModelessDialog中返回值的问题

mastererp 2003-06-25 10:38:27
我从一个在Iframe里的网页(main2.asp)中,
调用showModelessDialog打开一个查询网页dialogFrame.asp,
该网页中包含框架,框架里指向另外一个网页dialogSearch.asp,

用户在dialogSearch.asp里搜索,在某一结果行上点击,可以将一个ID值传回main2.asp中的一个form里的文本框sType。可是在传递的时候有问题,文本框sType只能得到字符串[Object]而不能得到真正的值,为什么?应该怎么的到?

在我的main2.asp里文本框代码是这样的:
<input type=text size=7 name="sType" value="" tabindex="1"><a href="#" title="快捷搜索"><font onclick='sType.value = window.showModelessDialog("dialogFrame.asp",window,"center:Yes; help: No; resizable: Yes; status: No;")'><b>→</b></font></a>

在我的dialogFrame.asp里有一个javacrip函数:
function RtnValue(return_value)
{
window.returnValue = return_value;
window.close;
}

在我的dialogSearch.asp点击某一行后调用的函数是:
function ClickRtn()
{
parent.RtnValue('aaa');
}// ClickRtn()


可是这样当点击后,文本框里出现的是"[Object]"
...全文
51 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mastererp 2003-06-25
  • 打赏
  • 举报
回复
不对呀,
xiaoganba 2003-06-25
  • 打赏
  • 举报
回复
应该是self.document.sType.value=return_value,没有测试不知道对不对。
xiaoganba 2003-06-25
  • 打赏
  • 举报
回复
把window.returnValue = return_value改成sType.value=return_value 试一下。
mastererp 2003-06-25
  • 打赏
  • 举报
回复
上面这个有点儿错误,下面的是正确的
好了,解决了,如下

在我的main2.asp里文本框代码是这样的:
<input type=text size=7 name= "sType " value= " " tabindex= "1 " > <a href= "javascript:void(0) " title= "快捷搜索 " > <font onclick='window.showModalDialog( "dialogFrame.asp ",window, "center:Yes; help: No; resizable: Yes; status: No; ")' > <b >→ </b > </font > </a >

在我的dialogFrame.asp里有一个javacrip函数:
<script language= "javascript " >
var sData = dialogArguments;
function RtnValue()
{
sData.document.all( "sType").value = "BBBBBB ";
}
</script >

在我的dialogSearch.asp点击某一行后调用的函数是:
<script language= "javascript " >
function ClickRtn()
{
parent.window.RtnValue('aaa');
parent.window.close();
}// ClickRtn()
</script >


谢谢各位
mastererp 2003-06-25
  • 打赏
  • 举报
回复
好了,解决了,如下

在我的main2.asp里文本框代码是这样的:
<input type=text size=7 name="sType" value="" tabindex="1"><a href="javascript:void(0)" title="快捷搜索"><font onclick='sType.value = window.showModelessDialog("dialogFrame.asp",window,"center:Yes; help: No; resizable: Yes; status: No;")'><b>→</b></font></a>

在我的dialogFrame.asp里有一个javacrip函数:
<script language="javascript">
var sData = dialogArguments;
function RtnValue()
{
sData.document.all("sACCOUNTUNIT_NO").value = "BBBBBB";
}
</script>

在我的dialogSearch.asp点击某一行后调用的函数是:
<script language="javascript">
function ClickRtn()
{
parent.window.RtnValue('aaa');
parent.window.close();
}// ClickRtn()
</script>


谢谢各位
exwind 2003-06-25
  • 打赏
  • 举报
回复
有模态的对话框,父窗口暂停;
无模态的,父窗口该干啥还是干啥!
fason 2003-06-25
  • 打赏
  • 举报
回复
呵呵,终于有个人站在同一线,用非模态时,不用returnValue进行传回值的
sakura169 2003-06-25
  • 打赏
  • 举报
回复
t1.htm
<input id=sType type=text>
<script>
function Test()
{
showModalDialog("t2.htm",window,'dialogwidth=300px;dialogheight=200px');
}
Test();
</script>


t2.htm
<script>
var sData = dialogArguments;
sData.sType.value = 1;
</script>
月光易水 2003-06-25
  • 打赏
  • 举报
回复
showModelessDialog()
Variant that returns a reference to the new window object.
Use this reference to script properties and methods on the new window.

返回值为一个新的对象,通过对象可以对打开的页面进行操作

修改:
showModelessDialog ==> showModalDialog()



:_)
xuzuning 2003-06-25
  • 打赏
  • 举报
回复
function ClickRtn()
{
RtnValue('aaa');
}// ClickRtn()
fason 2003-06-25
  • 打赏
  • 举报
回复
非模态窗口与主页面并存,所以返回的数据不像模态窗口那样,关键在第二个参数,try like this

<script>
function test(a){
sType.value=a
}
</script>
<input type=text size=7 name="sType" value="" tabindex="1">
<a href="javascript:void(0)" title="快捷搜索"><font onclick='window.showModelessDialog("3.htm",test,"center:Yes; help: No; resizable: Yes; status: No;")
'><b>→</b></font></a>


3.htm
-------
<script>
var arg=window.dialogArguments
arg('hello')
</script>
gzh_seagull 2003-06-25
  • 打赏
  • 举报
回复
直接赋值,不用调用parent的函数
function ClickRtn()
{
parent.returnValue='aaa';
parent.close()
}// ClickRtn()
liuzxit 2003-06-25
  • 打赏
  • 举报
回复
what's "return_value"
is return_value.value?

87,987

社区成员

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

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