如何从window.open中获取对象。在chrome.opener中使用chrome

问题描述 投票:0回答:1

嗨,我无法获得我正在通过window.open传递的对象

      var obj= new Object();
     var newpage= '';
    var urlaspx= "urlaspx.aspx?sid=1&frameWidth=" + frameWidth;

newpage= window.open(urlaspx, obj, 'center:yes; dialogWidth:400px; dialogHeight:430px; help:0; 
  status:0; scroll:0; resizable:1'); 

在我的urlaspx中

<script type="text/javascript">
var obj= window.opener;
var name= obj.name;
var age= obj.age;
</script>

这里obj对象为null请帮助我

javascript window.open window.opener
1个回答
0
投票

window.open的第二个参数应该是字符串,对于新的窗口名称,而不是对象。

我认为浏览器不允许您像这样将数据从一个窗口传递到另一个窗口。 (请参阅developer.mozilla.org/en-US/docs/Web/API/Window/open)

如果您都是两个页面的所有者,则可以在第二个页面URL中添加一些参数,以将数据从一个窗口传递到另一个窗口(就像您已经为frameWidth所做的那样。

const urlaspw = "urlaspx.aspx?"
  + "sid=1"
  + "&frameWidth=" + frameWidth
  + "&name=" + obj.name
  + "&age=" + obj.age;
const newpage = window.open(urlaspx, obj, 'center:yes; dialogWidth:400px; dialogHeight:430px; help:0; status:0; scroll:0; resizable:1'); 
    var obj = {};
    var params = window.location
      .toString()
      .split('?')[1]
      .split('&')
      .forEach(param => {
          obj[param.split('=')[0]] = param.split('=')[1]
       })
    var name = obj.name;
    var age = obj.age;
© www.soinside.com 2019 - 2024. All rights reserved.