我正在使用window.opener
将字符串值从子窗口传递到父窗口,因为 -
function reply_click(clicked_id)
{
alert(clicked_id);
window.opener.document.write(clicked_id);
window.close ();
}
cliced_id
是我要传回的字符串。
但是我想将它传回主页面上的隐藏输入,以便我可以再次使用它。问题是我无法指定将字符串值放在主页上的位置,而只是将字符串值加载到没有任何原始内容的新页面中。
是否可以传回字符串并保留原始HTML内容?
答案 0 :(得分:1)
是的,window.opener
是完整的window
参考。
您可以致电window.opener.myCallback(clicked_id)
或window.opener.clickedId = clicked_id
答案 1 :(得分: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;
}
答案 2 :(得分:1)
您为什么不将您的值存储在html5存储对象(例如sessionStorage / localStorage)中,请访问 Html5 Storage Doc 以获取更多详细信息。使用此功能,您可以在本地临时/永久存储中间值,然后访问您的值 用于存储会话的值
sessionStorage.getItem('label')
sessionStorage.setItem('value', 'label')
或使用
永久存储值localStorage.getItem('label')
localStorage.setItem('value', 'label')
因此,您可以使用html5存储对象在多个页面之间存储(临时)表单数据