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