Javascript 从iframe内部调用父jquery函数?

Javascript 从iframe内部调用父jquery函数?,javascript,jquery,Javascript,Jquery,假设我有一个“index.php”页面,其中有一个调用弹出框的链接: <a href="#" id="signinlink">Sign in</a> 但是怎么做呢?请帮忙 首先,如果iframe与登录表单有关,它应该自己发送自己的内容。代码应该在那里,而不是在父帧中被调用 不管怎样,你的问题缺少了一些关于你到底想做什么的细节 要从家长处访问内容,请执行以下操作: window.parent.functionname()而不仅仅是functionname() 所以 $(文

假设我有一个“index.php”页面,其中有一个调用弹出框的链接:

<a href="#" id="signinlink">Sign in</a>

但是怎么做呢?请帮忙

首先,如果iframe与登录表单有关,它应该自己发送自己的内容。代码应该在那里,而不是在父帧中被调用

不管怎样,你的问题缺少了一些关于你到底想做什么的细节

要从家长处访问内容,请执行以下操作:

window.parent.functionname()
而不仅仅是
functionname()

所以

$(文档).find(…)
将成为
window.parent.$(window.parent.document).find(…)

要从父级访问iframe,需要获取iframe DOM节点的contentDocument

这也很有帮助:


如果你能把问题说得更清楚,也许可以向你展示一个代码示例,它可以与你现有的代码一起工作。

首先,如果iframe与登录表单有关,它应该自己发送自己的内容。代码应该在那里,而不是在父帧中被调用

不管怎样,你的问题缺少了一些关于你到底想做什么的细节

要从家长处访问内容,请执行以下操作:

window.parent.functionname()
而不仅仅是
functionname()

所以

$(文档).find(…)
将成为
window.parent.$(window.parent.document).find(…)

要从父级访问iframe,需要获取iframe DOM节点的contentDocument

这也很有帮助:


如果您能把问题说得更清楚,那么可以向您展示一个与您所拥有的代码一起工作的代码示例。

这对我来说很有用-但只有当我将jQuery设置为1.8或add时,因为lightbox me需要1.8中不推荐的和1.9中删除的浏览器检测代码

在iframe中(假设iframe中没有jQuery):


实际上,您可能希望在parent中执行此操作—请注意,我使用preventDefault取消了链接本身,并重用了代码:

function launch() {
  $('#sign_up').lightbox_me({ 
    centered: true, 
    onLoad: function() { 
      $('#sign_up').find('input:first').focus();
    }
  });
}


$(function() {
  $('#signinlink').click(function(e) {
    e.preventDefault(); // stop the link from being followed
    launch(); 
  });
});

这对我来说是可行的-但只有当我将jQuery设置为1.8或add时,因为lightbox me需要1.8中不推荐的和1.9中删除的浏览器检测代码

在iframe中(假设iframe中没有jQuery):


实际上,您可能希望在parent中执行此操作—请注意,我使用preventDefault取消了链接本身,并重用了代码:

function launch() {
  $('#sign_up').lightbox_me({ 
    centered: true, 
    onLoad: function() { 
      $('#sign_up').find('input:first').focus();
    }
  });
}


$(function() {
  $('#signinlink').click(function(e) {
    e.preventDefault(); // stop the link from being followed
    launch(); 
  });
});

iframe是否在同一个域中?是的,它是同一个域parent.document.getElementById(“signinlink”)。单击()@mplungjan它看起来像是您放在这里的伪代码。要使jquery工作,还需要做更多的工作……什么是
jquery(function(){\*dosomething*\})在那里做什么?iframe在同一个域中吗?是的,它是同一个域Parent.document.getElementById(“signinlink”)。单击()@mplungjan它看起来像是您放在这里的伪代码。要使jquery工作,还需要做更多的工作……什么是
jquery(function(){\*dosomething*\})在那里做什么?
<a id="parentsignin" href="#">Signup</a>
window.onload=function() {
  document.getElementById("parentsignin").onclick=function() {
    parent.document.getElementById('signinlink').click();
    return false;
  }
}
function launch() {
  $('#sign_up').lightbox_me({ 
    centered: true, 
    onLoad: function() { 
      $('#sign_up').find('input:first').focus();
    }
  });
}


$(function() {
  $('#signinlink').click(function(e) {
    e.preventDefault(); // stop the link from being followed
    launch(); 
  });
});