首页 > 代码库 > jQuery 操作FrameSet

jQuery 操作FrameSet

最近突然用到了FrameSet传值
饶懵了,弄了好久!最后问了朋友才摸到点头绪
正赶上 现在 很迷 jQuery 就来总结下
看网上好像 相关的东西不太多
希望能给大家用上把

说先上来一段 FrameSet 层级的 代码吧 

<FRAMESET name="main" frameSpacing=0 frameBorder=YES cols=180,* >
	<FRAMESET name="leftArea" frameSpacing=0 frameBorder=NO rows="700,*"  >
			<FRAME name="left" src="http://www.mamicode.com/left.html" scrolling=no />
	</FRAMESET>
	<FRAMESET  name="rightArea" frameSpacing=0 frameBorder=NO rows="80,*" >
		<FRAME name="rightTop" src="http://www.mamicode.com/right_top.html" scrolling=no />
		<FRAME name="CR1_TopFrame" src="http://www.mamicode.com/right.html" scrolling=auto />
	</FRAMESET>
</FRAMESET>	

这里首先要说的是 这里需要有个name 用来找到对应的 frame ,id是可选的

现在 假定一种情况
要点击 left.html 页面,将里面的值传到rightTop页面去
这是 同辈兄弟页面间的传值
看网上的 写法是

Javascript代码

window.parent.parent.frames["rightArea"].frames["rightTop"]

其实根本不用找到 rightArea 这个 FrameSet ,直接 frames["rightTop"]就可以了
这里面 爬到最顶层,直接frames[目标frame的name] 就可以了


用jQuery的写法是

Javascript代码

jQuery(window.parent.parent.frames["rightTop"].document)

这样就可以得到 这个页面了 之后 就可以像操作 jquery 对象一样操作了


普通 js 的写法是

Javascript代码

window.parent.parent.frames["rightTop"].方法()

这里的方法 是 目标页面内的js 方法 ,不要只写名字,一定要加上()
而且还可以传参数

先写这些
以后再补

写完这帖子有段时间了,有用到了这里的东西,返回来看看,竟然发现自己都看不懂,先给自己两嘴巴,接下来补充点东西~

在得到 目标页面的JQuery对象 后通过 .find("选择器"); 就可以相应对象了~

Javascript代码

window.parent.parent.frames["rightTop"].find("#thisID");


本文出自 “编程之路” 博客,请务必保留此出处http://huangby.blog.51cto.com/5199904/1547334

jQuery 操作FrameSet