Jquery帧间通信

时间:2012-05-11 07:42:37

标签: javascript jquery html frame

我有main_page.htm作为

<frameset rows="30,*" frameborder=0 border=0>
       <frame name="top_frame" src="top.htm">
       <frame name="bottom_frame" src="bottom.htm">
</frameset>

bottom.htm中的代码是:

<div id="BottomFrameTest">Hi There!</div>

现在如何更改top_frame

top.htm的上述文字

top.htm中的代码是:

<script>
   function ChnageDivText()
   {
      $("#BottomFrameTest").html("Hello World. This text is changed");
   }
</script>
<body>
   <input type="button" value="Change Text" onclick="ChnageDivText()" />
</body>

上面的代码显然不起作用。如何与bottom_frame的{​​{1}}进行沟通?

2 个答案:

答案 0 :(得分:0)

假设您的所有框架都来自同一个域,您可以使用

 parent.bottom_frame.getElementById("BottomFrameTest").innerHTML = "Hello World. This text is changed";

当然,如果你真的想使用jquery,你可以做到

 $(parent.bottom_frame).find("#BottomFrameTest").html("Hello World. This text is changed");

答案 1 :(得分:0)

您可以尝试这样的事实上您正在尝试更新其他帧的元素,以便您尝试跨框架jquery操作

$(document).ready(function(){
    function ChnageDivText()
       {
          $(parent.BottomFrameTest.document).contents().find(‘#TextBox1′).val(‘Hello World. This text is changed’);
       }

});

我使用了文本框,例如你可以在find方法中设置所需元素的id。 你可以更深入地找到它here

如果$.contents()对您来说是新的,您可以找到它here

Here是一个与jquery docs类似的例子。

希望所有人都能帮到你。