我需要在使用window.open()
打开的新窗口中传递JSON对象我要求将数据库中存储的数据显示到新窗口中。同时我需要将当前打开窗口中可用的JSON对象传递给这个新窗口。
我可能的方式:
如果我们可以通过任何其他方法做到这一点,请指导。
谢谢。
答案 0 :(得分:1)
您也可以使用localStorage
而不是Cookie。如果您必须使用window.open()
,我认为您没有更好的选择。
为了保持每个组件功能自包含,我会使用服务来获取基于id的json。
答案 1 :(得分:1)
您可以使用打开窗口时获得的窗口对象,而不是使用cookie或localstorage。
var opened_window = window.open('someurl_here');
opened_window.json_data = JSON.stringify(this.local_json_data);
在子窗口中,您可以将数据作为窗口对象的一部分进行访问。
//Inject your window into this component (@Inject('Window') window maybe)
this.new_json_data = JSON.parse(this.window.json_data);
我认为这应该有效。
答案 2 :(得分:1)
我认为你可以使用Window.postMessage。 window.open将返回一个可以调用postMessage的Window对象;在新窗口中,您将要收听"消息"全局窗口对象上的事件。
请注意,IE8和IE9不支持Windows,只支持(i)帧。