jquery 获取加载时 iframe 内容的高度

2023-11-23

我有一个帮助页面 help.php,我正在 main.php 的 iframe 中加载该页面 在 iframe 中加载此页面后,如何获取该页面的高度?

我问这个是因为我无法将 iframe 的高度设置为 100% 或自动。这就是为什么我认为我需要使用javascript.. 我正在使用 jQuery

CSS:

body {
    margin: 0;
    padding: 0;
}
.container {
    width: 900px;
    height: 100%;
    margin: 0 auto;
    background: silver;
}
.help-div {
    display: none;
    width: 850px;
    height: 100%;
    position: absolute;
    top: 100px;
    background: orange;
}
#help-frame {
    width: 100%;
    height: auto;
    margin:0;
    padding:0;
}

JS:

$(document).ready(function () {
    $("a.open-help").click(function () {
        $(".help-div").show();
        return false;
    })
})

HTML:

<div class='container'>
    <!-- -->
    <div class='help-div'>
        <p>This is a div with an iframe loading the help page</p>
        <iframe id="help-frame" src="../help.php" width="100%" height="100%" frameborder="1"></iframe>
    </div>  <a class="open-help" href="#">open Help in iFrame</a>

    <p>hello world</p>
    <p>hello world</p>
    <p>hello world</p>
    <p>hello world</p>
    <p>hello world</p>
</div>

好吧我终于找到了一个很好的解决方案:

$('iframe').load(function() {
    this.style.height =
    this.contentWindow.document.body.offsetHeight + 'px';
});

由于某些浏览器(较旧的 Safari 和 Opera)报告加载在 CSS 渲染之前完成,因此您需要设置微超时并清空并重新分配 iframe 的 src。

$('iframe').load(function() {
    setTimeout(iResize, 50);
    // Safari and Opera need a kick-start.
    var iSource = document.getElementById('your-iframe-id').src;
    document.getElementById('your-iframe-id').src = '';
    document.getElementById('your-iframe-id').src = iSource;
});
function iResize() {
    document.getElementById('your-iframe-id').style.height = 
    document.getElementById('your-iframe-id').contentWindow.document.body.offsetHeight + 'px';
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery 获取加载时 iframe 内容的高度 的相关文章

  • PhoneGap/Cordova:如何使用cookies(iOS)?

    我有一个适用于 iOS 的 PhoneGap Corodova 项目 在 iOS 模拟器上构建时 我使用了 Jquery Cookies 它们很好 但是 既然我的设备上有该应用程序用于测试 它们就不再工作了 我猜这只是 iOS 不支持的东西
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • JavaScript 中的正则表达式用于验证十进制数字

    我想要 JavaScript 中的正则表达式来验证十进制数字 它最多只允许两位小数 例如 它应该允许10 89但不是10 899 它还应该只允许一个句点 例如 它应该允许10 89但不是10 8 9 尝试使用以下表达式 d d 0 2 如果
  • 使用 jQuery 检查输入是否为空

    我有一个表单 我希望填写所有字段 如果单击某个字段然后未填写 我想显示红色背景 这是我的代码 apply form input blur function if input text is empty this parents p addC
  • 使用 javascript 将 html 文本渲染为位图,无需服务器端代码

    我需要使用 javascript 代码来转换 html 中的文章 帖子 以便最终用户以位图的形式查看 有没有办法在没有服务器端代码的情况下做到这一点 example p testing text here p 您可以使用例如html2can
  • 如何获取传单标记簇中点击事件的图块?

    这是我的代码 function onMapClick e e originalEvent defaultPrevented true var orig e originalEvent console log orig target map
  • 在 ASP.NET MVC 4 中使用 jQuery Mobile 1.3 面板时的双滚动条

    我无法弄清楚这一点 将以下代码放入布局页面并在浏览器中查看后 我将显示 2 个垂直滚动条 div div 遇到了类似的问题 并注意到只有在使用我的自定义主题时才出现这种问题 我以错误的顺序将自定义主题添加到页面 这导致了问题 正确的顺序是
  • 有没有好的 JQuery twitter 小部件可以循环推文?

    我想知道是否有任何 JQuery 小部件提供了循环加载推文的功能 例如在官方小部件中http twitter com about resources widgets widget profile http twitter com about
  • Javascript 中的线性回归 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在网络浏览器中用 Javascript 进行最小二乘拟合 目前 用户使用 HTML 文本输入输入数
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • jqGrid刷新本地数据(JSON对象)

    我正在尝试将 jqGrid 与本地数据一起使用 但发现了几个问题 我正在初始化这样的事情 function refreshGrid grid results grid jqGrid data results datatype local c
  • 使用 AJAX 加载部分视图不起作用

    请原谅我 我是 MVC 和 AJAX 的新手 目前我只是提交一个表单 我想使用表单中的数据使用 ajax 更新部分视图中的表 My UserInfo部分视图如下所示 model IEnumerable
  • Jquery 悬停卡

    我在用着http designwithpc com Plugins Hovercard http designwithpc com Plugins Hovercard 但我不知道如何在悬停卡上声明 var 每个工作描述都有自己的 ID 当悬
  • 过滤自定义选择器是否大于 jQuery 中的数字[重复]

    这个问题在这里已经有答案了 快给你一份 我查看了 jQuery com 中的选择器 但找不到按大于数字的选择器进行过滤的方法 我想做这个 level gt 4 hide 我的 html 看起来像这样 div Test div 如何使用该语法
  • 点击加载谷歌地图

    我想在单击链接后显示 Google 地图 我已经尝试过以下方法 当点击链接时 然后 Insert div与 id 链接后map 使用 jQuery 方法 getScript 加载 Google Maps API 添加谷歌地图到div带身份证
  • jQuery .push 到 .get 调用中的数组给出空结果

    谁能告诉我为什么下面给我一个空字符串 当我console log contentArray in the get 回调函数它显示数据 但是当我尝试在下面的代码中执行它时 结果为空 sectionArray contentArray func
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • 使用单击事件调用“trigger”方法时的复选框值

    如何在点击事件中获取正确的当前值以通过触发器调用 Html
  • 覆盖 jQuery 验证 MVC4 中的默认设置

    要覆盖查询验证插件 请在文件 http docs jquery com Plugins Validation validate toptions 推荐的方式是 selector validate invalidHandler functio

随机推荐

  • 如何向数组添加新元素?

    我有以下代码 String where where append ContactsContract Contacts HAS PHONE NUMBER 1 where append ContactsContract Contacts IN
  • 在张量流中多次运行 train op

    我有一些相当大的批量大小 我想对其采取多个梯度步骤 虽然我可以使用 python for 循环轻松完成此操作 但我想可能有一种更有效的方法 不需要在每次迭代时将数据传输到 GPU 我曾多次尝试将火车操作放入获取列表中 但我不确定它实际上是否
  • 在 Pandas 数据框中创建 value_counts 列

    我想从 Pandas 数据帧列之一创建唯一值的计数 然后将包含这些计数的新列添加到我的原始数据帧中 我尝试了几种不同的方法 我创建了一个 pandas 系列 然后使用 value counts 方法计算计数 我尝试将这些值合并回原始数据帧
  • TFS 签入包含“较大”二进制文件的变更集超时

    我正在执行从 tfs visualstudio 到本地 2012 服务器的 TFS 集成迁移 我遇到了一个特定变更集的问题 该变更集包含多个超过 1 MB 的二进制文件 其中一些文件大小为 15 16 MB 我正在使用本地 TFS 进行远程
  • AngularJS:异步初始化过滤器

    我在尝试使用异步数据初始化过滤器时遇到问题 过滤器非常简单 它需要将路径转换为名称 但要做到这一点 它需要一个对应数组 我需要从服务器获取该数组 在返回函数之前 我可以在过滤器定义中执行一些操作 但是异步方面阻止了这种情况 angular
  • 在没有 ssh 访问权限的情况下运行 Composer 和 laravel (artisan) 命令

    我想在我的基本共享主机上测试一些 Laravel 应用程序 目前 我只是上传完整的应用程序 包括供应商文件 但这需要很长时间 因为我没有ssh访问我的主机我想知道是否有一个选项可以在没有这个的情况下运行作曲家 工匠命令 我找到了这个链接 使
  • 在 L 预览中使用材质主题

    L 开发者预览版目前处于 API 级别 20 但是 显然主题需要 API 级别 21 android style Theme Material Light DarkActionBar需要 API 级别 21 这是一个错误 我做错了什么 或者
  • 如何检查列表中的所有元素是否相同?

    如果我有这个清单 mylist n n 4 3 w 我如何让它读取列表 并告诉我它们是否都相同 我知道在这个例子中很容易看出它们并不完全相同 我有更大的清单 我希望它为我阅读 我会使用以下方法来解决这个问题 min 如果是这样 我将如何输入
  • Pandas 从 URL 读取 csv 并包含请求标头

    从 Pandas 0 19 2 开始 该函数读取 csv 可以传递一个 URL 例如 从这里可以看出answer import pandas as pd url https raw githubusercontent com cs109 2
  • 无法实例化类型 List [重复]

    这个问题在这里已经有答案了 我有以下代码 List
  • aspnet-codegenerator:即使添加 Microsoft.VisualStudio.Web.CodeGeneration.Design 之后,也没有可用的代码生成器

    无法使用生成脚手架aspnet 代码生成器 下面是我尝试过的 使用创建了 ASP Net RazorPages 应用程序dotnet new webapp Did a dotnet build 使用安装的 dotnet aspnet cod
  • 使用单个 main 执行多个 python 文件

    我有多个 python 文件 每个文件都有不同的类和方法 我想使用我在所有文件之外单独拥有的主要功能来执行所有这些文件 例如 我有三个文件 one py two py Three py 我在其中任何一个中都没有 main 方法 但是当我执行
  • 来自 sys.platform 的可能值?

    以下命令可能的返回值是什么 import sys print sys platform 我知道有很多可能性 所以我主要对 主要 可能性感兴趣 Windows Linux Mac OS System Value Linux linux or
  • 将 postgres 更改为不区分大小写

    如何将 Postgresql 数据库更新为不区分大小写 我已经有一些表和一些数据 目前它们区分大小写 但我想将它们全部更新为不区分大小写 你无法得到你的database不区分大小写 但从 v12 开始 您可以创建不区分大小写的 ICU 排序
  • 在 iPhone 中显示带有文本框的警报视图

    是否可以像 AppStore 应用程序一样显示带有文本框的警报视图 它在这样的对话框中要求输入密码 我至少见过一些其他第三方应用程序在使用它 它是私有 API 吗 这是来自 Tharindu Madushana 的 Apple 批准 的操作
  • 从文件加载 RSA 私钥时出现 InvalidKeySpecException

    我正在尝试从 java 中的文件加载私钥 该密钥由 ssh agent 生成 我实际上正在使用下面的代码 public PrivateKey getPrivateKeyFromFile try String privateKey readF
  • 角度拦截器和 CORS

    我正在尝试编写一个拦截器 以使用 Angular 向所有 HTTP 请求添加令牌 我大致使用这里给出的食谱 https thinkster io interceptors 所以代码使用 http 模块工厂和tokenInterceptor
  • 使用 UNION 时,SQL 查询是否保证以原子方式执行?

    我正在发出一个由使用 UNION 分组的多个 SELECT 组成的单个 SQL 查询 SELECT FROM employee LEFT JOIN department ON employee DepartmentID department
  • 是否可以在 Visual Studio 调试会话之间保留 Cookie

    我有一个身份验证 cookie 当我在本地环境中点击登录屏幕后 该 cookie 就会被设置 该 cookie 已被设置为持久性的 并被赋予未来 7 天的超时期限 当我结束调试会话并在另一个构建后开始调试时 cookie 不存在 每个浏览器
  • jquery 获取加载时 iframe 内容的高度

    我有一个帮助页面 help php 我正在 main php 的 iframe 中加载该页面 在 iframe 中加载此页面后 如何获取该页面的高度 我问这个是因为我无法将 iframe 的高度设置为 100 或自动 这就是为什么我认为我需