【问题标题】:Jquery run function from child window in parent windowJquery从父窗口中的子窗口运行函数
【发布时间】:2011-01-04 00:10:04
【问题描述】:

我有一个弹出窗口,我想在父窗口中运行一个函数。

在我的孩子中:

$(document).ready(function(){
    parent.$.fn.guestFromPop('Action');
});

在我的父母中:

$(document).ready(function(){
    function guestFromPop(data) {
        alert(data);
    }
});

问题是当parent.$.fn.guestFromPop('Action'); 我从来没有看到警报时,什么也没有发生。我做错了吗?

【问题讨论】:

  • colorbox 不是子窗口 :)

标签: jquery window parent


【解决方案1】:

这并没有声明函数$.fn.guestFromPop

$(document).ready(function(){
  function guestFromPop(data) {
    alert(data);
  }
});

...它所做的只是声明guestFromPop(),这是一个仅在document.ready 处理程序中可用的函数。您需要声明您要使用的函数:

$.fn.guestFromPop = function(data) {
  alert(data);
};

虽然,这也不是真的正确,因为它不会在 jQuery 元素上调用,你可能想要一些简单的东西:

function guestFromPop(data) {
  alert(data);
}

调用者:

parent.guestFromPop('Action');

【讨论】:

    【解决方案2】:
    (function(){
    $.fn.TestFunction=function(SampleData)
    {
    alert(SampleData);
    };
    });
    

    //可在其他父页面或iframe中调用 //

    (function(){
    $.fn.TestFunction("sdfsdfsfsfsd");
    
    });
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。弄清楚了。您的代码的问题是您没有引用正确的窗口来调用该函数。要从控制台到它的父级,您需要“opener”,而不是“父级”。

      因此,您需要调用此函数,而不是 parent.guestFromPop('Action'):

      $(self.window.opener.document).guestFromPop('Action');
      

      这应该是指正确的功能。它对我有用! ;-)

      【讨论】:

        【解决方案4】:
        guestFromPop = function(data) {
          alert (data)
        }
        

        从 iframe 调用:

        parent.guestFromPop(data);
        

        【讨论】:

          猜你喜欢
          • 2011-12-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多