我在 html 页面myPage.html中有一个 iFrame,我在其中显示另一个页面otherPage.html。 otherPage.html是一个包含许多元素的复杂页面。我想在 iFrame 中只显示一个 div。所有其他人都应该保持隐藏。我怎样才能做到这一点?
我尝试在 jQuery 中使用 .load() 函数,而不是 iFrame。但由于某种原因,页面无法加载。otherPage.html由IIS 服务器提供,页面由纯 Javascript 构建。我不知道为什么当我使用 load() 函数时什么都没有加载。
我将如何实现这一目标?
更新: 这里有一些说明:我尝试在 myPage.html 上使用.load () 函数。无论如何,在摆弄之后,我发现以下工作:对于我要显示的 div,我隐藏了它的所有兄弟姐妹,也隐藏了它的父级的所有兄弟姐妹。以下 jQuery 语句似乎可以做到这一点:
$("#myFrame").contents().find("#chart1").show().parentsUntil('body').andSelf().siblings().hide();
我现在只有一个问题。当我执行以下操作时:
- 在 Firefox 中加载myPage.html(它还在 Iframe 中加载otherPage.html)
- 手动打开萤火虫并输入
$("#myFrame").contents().find("#chart1").show().parentsUntil('body').andSelf().siblings().hide();
它似乎隐藏了其他一切。
但后来我想自动化它。换句话说,当我加载myPage.html时,我希望它加载 iFrame 的内容。加载 iFrame 内容后,我想运行此脚本:
$("#myFrame").contents().find("#chart1").show().parentsUntil('body').andSelf().siblings().hide();
我不能让它工作。到目前为止,我已经尝试了这两种方法:
$(document).ready(function() {
$("#myFrame").ready(function () {
$("#myFrame").contents().find("#chart1").show().parentsUntil('body').andSelf().siblings().hide();
});
});
我也尝试过使用
$("#myFrame").load(function () {
反而。但在这两种情况下,脚本都不会隐藏其他元素。因为,当我在控制台中手动使用该脚本时,它可以工作,我假设它在加载所有元素之前以某种方式运行。请给我你的想法。