0

我正在使用window.opener将字符串值从子窗口传递到父窗口,如下所示 -

function reply_click(clicked_id)
{
alert(clicked_id);

window.opener.document.write(clicked_id);
window.close ();
}

cliced_id我要传回的字符串在哪里。

但是,我想将其传递回主页上的隐藏输入,以便我可以再次使用它。问题是我无法指定将字符串值放在主页上的位置,而是将字符串值加载到没有任何原始内容的新页面中。

是否可以传回字符串并保留原​​始 HTML 内容?

4

3 回答 3

1

是的,window.opener是一个完整的window参考。

你可以打电话window.opener.myCallback(clicked_id)window.opener.clickedId = clicked_id

于 2012-08-09T12:58:25.693 回答
1

是的,如果您在原始页面上有一个带有 id 的元素,您可以使用getElementById并设置innerHTML

例如,页面上有一个空的 div:

<div id="myDiv"></div>

您可以使用此代码

function reply_click(clicked_id)
{
    alert(clicked_id);
    window.opener.document.getElementById("myDiv").innerHTML = clicked_id;
}
于 2012-08-09T12:58:42.323 回答
1

嗨,为什么不将值存储在 html5 存储对象中,例如 sessionStorage/localStorage,请访问Html5 存储文档以获取更多详细信息。使用它,您可以在本地临时/永久存储中间值,然后访问您的值以存储会话的值

sessionStorage.getItem('label')
sessionStorage.setItem('value', 'label')

或使用永久存储值

localStorage.getItem('label')
localStorage.setItem('value', 'label')

因此,您可以使用 html5 存储对象在多个页面之间存储(临时)表单数据

于 2012-08-09T12:59:09.050 回答