C# 如何通过jQuery调整iFrame的大小?

C# 如何通过jQuery调整iFrame的大小?,c#,javascript,jquery,asp.net,C#,Javascript,Jquery,Asp.net,我一直在尝试使用来自的信息,根据iFrame的内容调整iFrame的大小。他的演示已经找到了 我正在使用以下工具: $("#IframeId").load(function() { $(this).height( $(this).contents().find("body").height() ); }); .find(“body”)是否正在检查内部iframe内容的标题部分中的“body”?我确实在托管页面中看到了这一点 我还在上述代码中添加了以下内容: alert($(this)

我一直在尝试使用来自的信息,根据iFrame的内容调整iFrame的大小。他的演示已经找到了

我正在使用以下工具:

$("#IframeId").load(function() {
    $(this).height( $(this).contents().find("body").height() );
});
.find(“body”)
是否正在检查内部iframe内容的标题部分中的“body”?我确实在托管页面中看到了这一点

我还在上述代码中添加了以下内容:

 alert($(this).height( $(this).contents().find("body").height()));

我没有看到警报。

我认为您必须尝试在IFrame的源中查找特定元素的高度,而不是html标记本身,因为它没有指定的高度。以下是一个工作示例:

$("#IframeId").load(function() {
    $(this).height( $(this).contents().find("#box").height() ); //box can be changed to the id of the element you want
});

如果您有一个容器div,它的宽度与您希望Iframe的宽度相同,那么可以使用它的id,而不是box。(注意:box是JsFiddle示例中主要元素的id。)

您使用的是链接问题的提问方法,而不是答案,该问题的开场白清楚地提到他的方法不起作用。你为什么不复制答案中建议的解决方案之一呢?我已经更新了问题。请查看此问题的答案:让框架中的页面计算出其高度,然后使用postMessage告诉家长。谢谢。我没有看到我的警报在iframe加载中触发。它获取了一个带有runat=server属性的HTML元素,该元素在运行时会变成一些损坏的ID。但是$(“#IframeId”)应该可以工作,对吗?我认为我获取服务器控件引用的jQuery是不正确的。我把它放在警报中:$(“#IframeId”).attr('id')。它给出了一个未定义的结果。当我用损坏的asp.net生成的ID替换#IframeId时,我会在警报中看到ID。attr('ID')所做的是请求ID为“IframeId”的元素。由于您很可能没有id为“iframeid”的元素,因此此代码返回的是未定义的。如果您使用的是Asp.NET 4.0,则可以将
clientdmode=“Static”
添加到iframe上的属性中。