如何使用javascript将值从父窗口传递到另一个html页面?

时间:2013-11-26 14:35:54

标签: javascript window.open

我有2个窗口home.htmlresult.html

home.html我有一个<textarea> #txtinput 和一个<button> #btn

result.html我有另一个<textarea> #txtresult

home.html,如果我在 #txtinput 中输入一个值并点击 #btn ,我想打开result.html并传递< #txtinput 的em> value 到 #txtresult

我在另一篇文章中尝试了以下代码,该帖子在新窗口的正文中显示了值,但不会在我的元素中显示

var myWindow = window.open();
myWindow.document.body.innerHTML = document.getElementById("txtinput").value;

以某种方式以某种方式可行吗?我对JavaScript比较陌生,我的课程现在正在进行中,我很想知道如何做到这一点。任何详细的帮助将非常感谢!

4 个答案:

答案 0 :(得分:16)

我希望我需要详细说明下面的代码

主页上的点击功能按钮:

function sample(){
    //this will set the text box id to var id;
    var id = document.getElementById("text_box_id").id;

    //the sessionStorage.setItem(); is the predefined function in javascript
    //which will support for every browser that will store the sessions.
    sessionStorage.setItem("sent", id); 

    //this is to open a window in new tab
    window.open("result.html","_blank");
}

检索结果页面中的值:

$(document).ready(function(){
    //This sessionStorage.getItem(); is also a predefined function in javascript
    //will retrieve session and get the value;
    var a = sessionStorage.getItem("sent");
    alert(a);
});     

有关sessionStorage

的更多信息

我已经完成了与上面相同的事情,我在新窗口中获取的值非常好,但是我只在documet.ready()函数中获得了这些值。所以我无法在JSP中使用这些值。一旦我得到了值,我需要在JSP中显示它们。

答案 1 :(得分:2)

我希望此代码可以帮助您

这应该在主页:

function sample(id) {
    sessionStorage.setItem("sent", id);
    window.open("result.html","_blank");
}

这是同一主页功能的另一种方式:

function sample() {
    var id=document.getElementById("your_required_id").id;
    sessionStorage.setItem("sent", id);
    window.open("result.html","_blank");
}

这应该在结果页面中:

function sample1() {
    var a=sessionStorage.getItem("sent");
    alert(a);
}

ID可能是您的文本框ID

答案 2 :(得分:1)

result.html中,找到使用window.opener打开它的 Window ,然后从 Window 中获取您感兴趣的数据。

window.addEventListener('load', function () { // wait for ready
    var home = window.opener, txtinput, txtresult;
    if (home) {
         txtinput = home.document.getElementById("txtinput");
         txtresult = document.getElementById('txtresult');
         txtresult.value = txtinput.value;
    }
}, false);

home.html中,聆听点击 #btn 并打开result.html

// assuming button exists at invocation time
var btn = document.getElementById('btn');
btn.addEventListener('click', function () {
    window.open('result.html');
}, false);

答案 3 :(得分:0)

我认为你需要在子窗口中使用window.opener句柄进行简单的赋值:

if (window.opener) document.getElementById("#txtresult").value = window.opener.document.getElementById("#txtinput").value;