jquery跨iframe框架不能执行

这是页面代码:
<iframe height="100%" width="100%" border="0" frameborder="0" src="left.html" name="leftFrame" id="leftFrame" title="leftFrame"></iframe>
<iframe height="100%" width="100%" border="0" frameborder="0" src="right.html" name="rightFrame" id="rightFrame" title="rightFrame"></iframe>

left.html中的jquery脚本:
$("#rightFrame",parent.document).contents().find("#textfield").attr("value","123");$("#rightFrame",parent.document).contents().find("#caoni").append(htmlcontent);

注:htmlcontent是一段html代码.

上面两句脚本均不能执行..我用alert调试过.两句脚本是可以运行的.但是在页面上却没有反应.id什么都是对的.我怀疑是脚本执行过后页面刷新了.我贴几张图看下吧(执行时上面两句脚本加上alert了).

原效果图:

执行第一句代码后:

执行第二句代码后:

最终效果:

又变回原样了.都没有保存..求大神告知是什么情况.谢谢
注意了.我说的是兄弟框架间的操作.希望大家看好我的问题描述再回答.别闭着眼睛随便贴一个答案.谢谢

第1个回答  2013-09-17
jQuery 操作IFRAME
DOM方法:
父窗口操作其下的IFRAME:window.frames["iframeName"].document
或者直接写frames["iframeName"].document
IFRAME操作父窗口: window.parent.document
或者直接写parent.document

jquery方法:
在父窗口中操作 其下IFRAME中的元素: $(window.frames["iframeName"].document).find(”:text”);
在IFRAME中操作 选中父窗口中的所有输入框:$(window.parent.document).find(”:text”);
使用find可以找到自己想要的东东。
想要找到同级的iframe,可以用$(parent.frames["iframeName"]).find("xxxxxx")
细心的朋友一下就能理解,原理其实很简单,就是用到了$(DOM对象)转换成jquery对象。追问

不只两句.还有.但是和跨iframe无关

本回答被提问者采纳
第2个回答  2013-09-17
$(window.frames["iframe"].document).find(".test").css("background","red");追问

是兄弟框架间的操作.不是父窗口对其下框架的操作

追答

变一下 一级级 向下找啊

追问

不好意思.我脚本是写在兄弟框架间的其中一个里的.用你的代码是错的.我问题描述里面写了两句代码.那两句代码是可以对其框架操作的.我想问的是为何执行完脚本后所有的效果都变回原样了.麻烦看好问题描述.我连效果图都贴出来了,难道好不够清楚么?

追答

表一下啊 找父元素 在找其他的 可以实现的

追问

在子框架中用window.frames["iframe"].document是获取不到对象的.这句代码是用在父窗口的.在子框架下获取父窗口用window.parent.document