Jquery在父窗口中从子窗口运行函数

时间:2011-01-04 00:10:05

标签: jquery window parent

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

在我的孩子身上:

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

在我的父母身上:

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

问题是当parent.$.fn.guestFromPop('Action');我从未看到警报时,没有任何反应。我做错了吗?

4 个答案:

答案 0 :(得分:4)

这不会声明函数$.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');

答案 1 :(得分:1)

(function(){
$.fn.TestFunction=function(SampleData)
{
alert(SampleData);
};
});

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

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

});

答案 2 :(得分:0)

我遇到了同样的问题。弄清楚了。您的代码的问题在于您没有引用正确的窗口来调用该函数。要从控制台到它的父母,你需要'开启者',而不是'父母'。

所以你需要调用它来代替parent.guestFromPop('Action'):

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

那应该参考正确的功能。它对我有用! ; - )

答案 3 :(得分:0)

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

来自iframe的电话:

parent.guestFromPop(data);