需求是這樣的:用戶在A頁面中要插入數據
地址為:http://www.xx.com/insert.aspx其中有一項數據是點了"選擇"按鍵後打開一個新的窗口B頁面.
地址為:http://www.xx.com/select.aspx用戶在在B頁面選擇了一個值後把值返回到A頁面.并在A頁面的一個TextBox上顯示.
刷新窗口是不可取的,這樣會把用戶之前的填寫和資料丟失.用JS嗎?用層的話具體又是怎么樣做?

解决方案 »

  1.   

    如果只是通过<a href这样的话,不可以可以通过下面的方式:showModalDialog和showModelessDialog数据传递技巧。
      这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
      例子:
        现在需要在一个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元素的值"
      

  2.   

    如果只是通过<a href这样的话,不可以可以通过下面的方式:showModalDialog和showModelessDialog数据传递技巧。
      这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
      例子:
        现在需要在一个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元素的值"
      

  3.   

    用JS
    参考opener对象
    在B中,opener对象就是A,可以通过opener.document或者operner.form1什么的将值传回A
      

  4.   

    <script>window.opener.document.forms[0].TextBoxname.value='"+传的值+"';</script>
      

  5.   

    注意如果A页面为框架
    <script>opener.parent.frames['frameName'].document.all.TextBoxname.value='"+传的值+"' ; </script> 
      

  6.   

    我用了,不行.A頁面上TextBox的值沒有變化....