假设我有这个页面“index.php”,其中我有一个调用弹出框的链接:
<a href="#" id="signinlink">Sign in</a>
jquery函数是:
<script type="text/javascript" charset="utf-8">
jQuery(function() {
function launch() {
jQuery('#sign_up').lightbox_me({centered: true, onLoad: function() { jQuery('#sign_up').find('input:first').focus()}});
}
jQuery('#signinlink').click(function(e) {
jQuery("#sign_up").lightbox_me({centered: true, onLoad: function() {
jQuery("#sign_up").find("input:first").focus();
}
});
});
</script>
iframe如何调用此函数?
(*从父页面“index.php”调用iframe) 我想我必须添加一个链接
window.parent.callme();
但是怎么样?请帮忙!
答案 0 :(得分:1)
首先 - 如果iframe与登录表单有关 - 它应该自己发送自己的内容。代码应该在那里,而不是在父框架中调用。
无论如何,你的问题缺少一些关于你想要做什么的细节。
要从父母访问内容,请执行以下操作:
window.parent.functionname()
而非functionname()
所以
$(document).find(...)
将成为window.parent.$(window.parent.document).find(...)
要从父级访问iframe,您需要获取iframe DOM节点的contentDocument。
这也很有用:How to expose IFrame's DOM using jQuery?
如果您可以更清楚地提出问题,可能会向您展示一个与您所拥有的代码相关的代码示例。
答案 1 :(得分:0)
这对我有用 - 但只有当我将jQuery设置为1.8或添加jQuery migrate时,因为lightbox-me需要在1.8中弃用并在1.9浏览器检测代码中删除
iframe中的(假设iFrame中没有jQuery):
<a id="parentsignin" href="#">Signup</a>
使用
window.onload=function() {
document.getElementById("parentsignin").onclick=function() {
parent.document.getElementById('signinlink').click();
return false;
}
}
实际上,您可能希望在父级中执行此操作 - 请注意我使用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();
});
});