Js操作iframe核心是操作本页面跟iframe的window对象
比较常用的案例:通过iframe来无刷新登录(远古的ajax)重点在:form的target
<div id="pop_loginBox">
<div class="pop_loginL">
<div class="pop_loginMain">
<form name="myloginform" method="post" action="/chkLogin.php" target="denglubox" id="myform">
<input type="hidden" name="action" value="fmlogin" />
<div class="pop_loginItem" id="pop_loginItem">
<input type="text" id="lg_username" name="username" value="">
</div>
<div class="pop_loginItem" id="pop_loginItem2">
<input type="password" id="lg_password" name="passwd" value="">
</div>
<div class="pop_loginRem">
<a href="javascript:;" target="_blank">忘记密码?</a><span><input class="chk" type="checkbox" name="autologin" id="lg_rem" value="1" checked=""><label for="lg_rem">记住我</label></span></div>
<div class="pop_loginBtn"><a id="popLoginBtn" href="javascript:jklogin();">登录</a></div>
</form>
</div>
</div>
<div class="pop_loginR"><h2>使用合作网站账号登录:</h2><a href="javascript:;" id="pop_qqLogin"></a><h3>还没有帐号?<a href="javascript:;" target="_blank">马上注册</a></h3></div>
</div>
<iframe style="display:none;" name="denglubox"></iframe>
然后我们在php端 通过判断用户名和密码 如果正确就写入cookie 然后再
echo '<script>parent.jkloginok();alert("'.$contentArr["msg"].'");</script>';
这里在iframe中想要访问父级的方法 可以用parent.xxx();
父页面调用子页面方法:FrameName.window.childMethod();
子页面调用父页面方法:parent.window.parentMethod();
另外,有些钓鱼网站喜欢通过一个iframe抓取别人网站的内容显示在一个框架中,防被别人网页嵌入其框架中,解决办法:
<script type="text/javascript">
if(window != window.top){// 判断当前的window对象是否是top对象
window.top.location.href = window.location.href;// 如果不是,将top对象的网址自动导向被嵌入网页的网址
}
</script>