Js操作iframe

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>';


jkloginok做的工作主要是 判断是否存在cookie  通过局部刷新实现登录


这里在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>




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JS操作iframe里的元素可以通过以下几个步骤进行: 1. 获取iframe元素:首先,我们需要通过`document.getElementById()`或其他适合的方法获取到iframe元素的引用。例如,如果iframe元素的id为"myIframe",我们可以像这样获取它:`var iframe = document.getElementById("myIframe");` 2. 获取iframe的内容窗口:每个iframe都有一个`contentWindow`属性,它表示iframe的内容窗口。通过访问`iframe.contentWindow`,我们可以得到iframe内部的window对象引用。例如:`var iframeWindow = iframe.contentWindow;` 3. 获取iframe内部的文档对象:在获取到iframe内容窗口的引用后,我们可以通过`iframeWindow.document`来访问iframe内部的文档对象。例如:`var iframeDocument = iframeWindow.document;` 4. 使用iframe的文档对象进行操作:通过获取到iframe内部的文档对象,我们就可以像操作普通的HTML文档一样操作iframe中的元素了。例如,如果我们要获取iframe中id为"myElement"的元素,并改变它的样式,可以通过以下代码实现: ``` var myElement = iframeDocument.getElementById("myElement"); myElement.style.color = "red"; ``` 需要注意的是,由于同源策略的限制,当iframe与当前页面不属于同一个域时,我们只能通过以上方法获取到iframe元素本身,而无法直接访问其内部的文档对象。为了解决这个问题,可以考虑使用postMessage方法进行跨域通信,或者在iframe的源文件中添加合适的跨域资源共享(CORS)头部。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值