如何使用javascript将数据从一个.window发送到另一个?

时间:2014-12-18 11:58:19

标签: javascript jquery dom

我在主页面上有一个表单,按下它上面的一个特定按钮 - 新窗口()打开,其中有一个表格,然后双击表格中的行,它应该将表格中的数据传输到我的输入字段中形式,但它没有。 但如果我从一个页面运行所有内容,它就可以正常工作。

那么我应该如何修改我的代码,以便它可以从新窗口传输数据

主页:

<!DOCTYPE HTML>     
<html>    
<head>     
    <title>Untitled</title>     
    <meta charset="utf-8">     
</head>
<body>
    <button type="button" onclick="NewWindow()">Banks</button>
<br /><br />
    Bank Name:    
    <br />     
    <textarea id='bank' cols=56 rows=6></textarea>     
    Bank Adress:     
    <br />     
    <textarea id='bic' cols=56 rows=6></textarea>     
    <script>     
        var textarea_bank = document.getElementById('bank'),     
            textarea_bic = document.getElementById('bic');  
        function comm(obj) {     
            textarea_bank.value = obj.cells[0].innerHTML;     
            textarea_bic.value = obj.cells[1].innerHTML;     
        }            
        function NewWindow() 
            {
              myChildWin =  window.open("test.html", "_blank", "toolbar=no, scrollbars=no, resizable=no, top=100, left=100, width=600, height=600");
            }     
    </script>     
</body>  
</html>

带表格的窗口(test.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">     
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>test</title>        
    </head>
    <body>
        <table id="mySuperTBL">
        <tr>
            <td><b>BankName</b>
            </td>
            <td><b>BIC</b>
            </td>
        </tr>
        <tr id='1' ondblclick='comm(this)'>
            <td>Bank</td>
            <td>Adress</td>
        </tr>
    </table>        
    </body>
</html>

2 个答案:

答案 0 :(得分:1)

您应该使用查询字符串,以下代码显示了如何将id1发送到test.html

function NewWindow() 
{
    myChildWin =  window.open("test.html?id=1", "_blank", "toolbar=no, scrollbars=no, resizable=no, top=100, left=100, width=600, height=600");
}

答案 1 :(得分:1)

很简单,你应该创建两个文件。第二个是“stam.html”(这将是子窗口):

编辑 - 双向沟通:-)

示例文件将自行打开(将此文件保留为“stam.html”)。如果是父级,则会将消息设置为子级。 else - 它会将文本设置为父级。

<!DOCTYPE html>
<html>
    <head>
        <title>Bla!</title>
        <script type='text/javascript'>
            var m_ChildWindow = null; // 

            function OpenChildWIndow() {
                m_ChildWindow = window.open ("stam.html");
            }

            function SetDataToChild(data) {
                if (m_ChildWindow) {
                    m_ChildWindow.document.getElementById('body').innerHTML += "Dear son:" + data;
                } else {
                    opener.document.getElementById('body').innerHTML += "Dear Daddy:" + data;
                }
            }

            function Init() {
                var button = document.getElementById('cmdSendMsg');
                if (opener) {
                    button.innerHTML = "send message to daddy";
                }
            }
        </script>
    </head>
    <body id='body' onload = "Init();">
        <button onclick='OpenChildWIndow();'>Click to open child</button>
        <br>
        <button onclick='SetDataToChild("Hello <br>");' id='cmdSendMsg'>Click to add data to child</button>

    </body>
</html>

这里有两个按钮。第一个将打开新窗口,第二个将添加“hello”。