需求是這樣的:用戶在A頁面中要插入數據
地址為:http://www.xx.com/insert.aspx其中有一項數據是點了"選擇"按鍵後打開一個新的窗口B頁面.
地址為:http://www.xx.com/select.aspx用戶在在B頁面選擇了一個值後把值返回到A頁面.并在A頁面的一個TextBox上顯示.
刷新窗口是不可取的,這樣會把用戶之前的填寫和資料丟失.用JS嗎?用層的話具體又是怎么樣做?
地址為:http://www.xx.com/insert.aspx其中有一項數據是點了"選擇"按鍵後打開一個新的窗口B頁面.
地址為:http://www.xx.com/select.aspx用戶在在B頁面選擇了一個值後把值返回到A頁面.并在A頁面的一個TextBox上顯示.
刷新窗口是不可取的,這樣會把用戶之前的填寫和資料丟失.用JS嗎?用層的話具體又是怎么樣做?
这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
例子:
现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name
一般的传递方式:
window.showModalDialog("filename.htm",var_name)
//传递var_name变量
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments)//读取var_name变量
window.dialogArguments="oyiboy"//设置var_name变量
这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
以下是我建议使用的传递方式:
window.showModalDialog("filename.htm",window)
//不管要操作什么变量,只直传递主窗口的window对象
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量
同时我也可以操作var_id变量
alert(window.dialogArguments.var_id)//读取var_id变量
window.dialogArguments.var_id="001"//设置var_id变量
同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
window.dialogArguments.form1.index1.value="这是在设置index1元素的值"
这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
例子:
现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name
一般的传递方式:
window.showModalDialog("filename.htm",var_name)
//传递var_name变量
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments)//读取var_name变量
window.dialogArguments="oyiboy"//设置var_name变量
这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
以下是我建议使用的传递方式:
window.showModalDialog("filename.htm",window)
//不管要操作什么变量,只直传递主窗口的window对象
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量
同时我也可以操作var_id变量
alert(window.dialogArguments.var_id)//读取var_id变量
window.dialogArguments.var_id="001"//设置var_id变量
同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
window.dialogArguments.form1.index1.value="这是在设置index1元素的值"
参考opener对象
在B中,opener对象就是A,可以通过opener.document或者operner.form1什么的将值传回A
<script>opener.parent.frames['frameName'].document.all.TextBoxname.value='"+传的值+"' ; </script>