我正在使用的客户机的框架集如下所示
<;框架集行=“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“>;
</框架集>;
当某个动作发生时,我需要我的框架(当前隐藏的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“></脚本>;
<;script type=“text/javascript”>;
函数doIt(){
$('h1',window.parent.frames[0].document).remove()
}
</脚本>;
</头>;
<;车身>;
<;h1>;我的框架</h1>;
<;a href=”“onclick=“doIt()”>;去做吧</a>;
</车身>;
</html>;