如何将值从子窗口传递到另一个

时间:2019-04-29 11:31:51

标签: javascript

我想将值从子window2传递到子window1。我已经使用了代码,但是它正在父窗口中传递值。我的代码在这里

<script type="text/javascript">
   function post_value(){
     var val='5';
     window.opener.document.getElementById('barcode1txt').value=val; 
     self.close();
  }

如果我想在两个子窗口之间传递此值,此代码将发生什么变化。请指导我。

1 个答案:

答案 0 :(得分:0)

希望理解您的问题,有一个大型机(window.top)和两个(相同的域?)iFrame,它们之间必须进行通信。

因此,有几种方法可以完成此操作。 假设您具有相同的域框架,则可以访问window.top,您可以在大型机中执行以下操作:

<script>
var frame1 = document.getElementById('iframe1').contentWindow;
var frame2 = document.getElementById('iframe1').contentWindow;
</script>

现在您可以通过此引用轻松定义任何内容,您可以在frame2中执行此操作以在frame1中定义方法:

<script>
window.top.frame1.demoalert = function() {alert()};
</script>

此后,您可以直接从frame1调用demoalert。 您可以从frame2到frame1定义或传输任何内容,但必须经过父级并确保从父级的视图中找到frame1。

从frame2开始,您将执行以下操作:

<script>
function post_value(){
    let frame1 = window.top.document.getElementByid('frame1').contentWindow;
    let val='5';
    frame1.document.getElementById('barcode1txt').value=val; 
    self.close();
}
post_value()
</script>

对于不允许访问父级的iFrame,它们也是一种方法。 小部件,插件或广告通常需要此功能,但也适用于您的情况。参见here