在另一个框架的上下文中运行JQuery

前端之家收集整理的这篇文章主要介绍了在另一个框架的上下文中运行JQuery前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用的客户端有一个框架集,如此…
<frameset rows="100,*,0">
  <frame name="theFrame" id="theFrame" src="blah.html" >
  <frame name="theSecondFrame" id="theSecondFrame" src="foo.html" >
  <frame name="importantFrame" id="importantFrame" src="myFrame.html" >
</frameset>

当某个动作发生时,我需要我的框架(当前被隐藏的importantframe)主要接管页面并阻止与其他框架的任何交互。我计划使用jquery块UI插件阻止交互。

问题是我实际上不能更改foo.html或blah.html文件。所以JS代码不能住在那里。我需要做的是在这些框架的上下文中执行我的jquery代码。所以只是重述一下,我需要我的JQuery代码住在myFrame.html,但在其他框架的上下文中执行。我怎样才能做到这一点?希望有意义。

谢谢
CDR

解决方法

jQuery函数,你更常用$调用,接受第二个参数称为上下文,这是“jQuery对象的DOM元素我应该搜索”。大多数时候你省略这个参数,所以上下文默认为当前HTML文档。当您的代码在iframe中执行时,文档默认为iframe的文档。但是你可以轻松地抓取其他框架的文档。

例如,将它放在myFrame.html中,这将从框架中删除blah.html中的所有h1元素。注意$的第二个参数,它是从重要帧中抓取blah帧的表达式:

<html>
  <head>
    <script type="text/javascript" src="/javascripts/jquery.js"></script>
    <script type="text/javascript">
      function doIt() {
        $('h1',window.parent.frames[0].document).remove()
      }
    </script>
  </head>
  <body>
    <h1>My Frame</h1>
    <a href="#" onclick="doIt()">Do It</a>
  </body>
</html>

猜你在找的jQuery相关文章