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

我正在使用的客户机的框架集如下所示

<框架集行=“100,*,0”>
<frame name=“theFrame”id=“theFrame”src=”https://stackoverflow.com/questions/539504/blah.html“>
<frame name=“theSecondFrame”id=“theSecondFrame”src=”https://stackoverflow.com/questions/539504/foo.html“>
<frame name=“importantFrame”id=“importantFrame”src=”https://stackoverflow.com/questions/539504/myFrame.html“>
&lt/框架集>

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

问题是我实际上无法更改foo.html或blah.html文件。所以JS代码不能在那里生存我需要做的是在这些帧的上下文中执行jquery代码。简单地说,我需要我的JQuery代码生活在myFrame.html中,但在其他框架的上下文中执行。我该怎么做?希望这是有道理的

谢谢
CDR

jQuery函数(通常使用$调用)接受第二个名为context的参数,即“我应该在jQuery对象的哪个DOM元素中进行搜索”。大多数情况下,忽略此参数,因此上下文默认为当前HTML文档。当代码在iframe中执行时,文档默认为该iframe的文档。但是,您可以轻松地获取其他帧之一的文档

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

<html>
<头>
<script type=“text/javascript”src=”https://stackoverflow.com/javascripts/jquery.js“&gt&lt/脚本>
<script type=“text/javascript”>
函数doIt(){
$('h1',window.parent.frames[0].document).remove()
}
&lt/脚本>
&lt/头>
<车身>
<h1>我的框架&lt/h1>
<a href=”“onclick=“doIt()”>去做吧&lt/a>
&lt/车身>
&lt/html>

发表评论