如何从弹出窗口调用父函数?

时间:2019-06-07 21:05:43

标签: javascript jquery

我有一个showMap函数,它会打开一个新窗口(window.open)。在新窗口中,我有一个iframe googlemaps和一个带按钮的输入。当用户单击按钮到函数中的函数时如何传递数据父窗口?

var popUpWindow ;
function showMap(){
     popUpWindow = window.open(index)
     popUpWindow.document.write( '<html><head><title>MAP</title>
     </head><body>
     <iframe src="https://maps.google.com/maps/embed/v1/directions?> 
     </iframe> <br> <input type="text" id="data> 
     <button type="button" onclick="opener.callParent()">
      Update</button></body></html');
}

function callParent(){
  var newValue = popUpWindow.document.getElementById('data').value;
  console.log('newVal',newValue);
}

通过这种方式,我能够从子窗口到父窗口获取值。

2 个答案:

答案 0 :(得分:2)

在该新弹出窗口下全局检查window.opener

答案 1 :(得分:0)

您可以使用ES6导入/导出。

为此,首先导出父级函数,然后导入并在模式中使用。

另一种方法,但很危险的一种方法是使用全局窗口范围来实现您要调用的方法。