如何让 chrome 重新渲染 iframe

Posted

技术标签:

【中文标题】如何让 chrome 重新渲染 iframe【英文标题】:how to make chrome re-render an iframe 【发布时间】:2021-04-07 19:54:16 【问题描述】:

谁能建议任何特定于 Chrome 的代码来强制它重新渲染 iframe?我们看到了这种非常奇怪的现象,间歇性地,我们在页面上加载的 iframe 将全是白色的。当您移动鼠标时,您甚至可以看到底层元素的标题标签。只要您尝试在调试器中检查它,它就会立即自行修复。当您调整页面/iframe 的大小时,它也会自行修复。我们无法想出一种方法来以编程方式检测何时发生这种情况,尽管 b/c 这似乎是一个奇怪的错误,Chrome 没有呈现它。是否有特定于 chrome 的代码来告诉它进行重新渲染循环? (一个简单的 jquery 显示/隐藏不会影响它)提前感谢您的任何建议!

【问题讨论】:

【参考方案1】:

您也许可以强制 iframe 的 CSS 重绘。一个技巧是读取高度

document.getElementById("yourIframe").contentDocument.documentElement.offsetHeight

【讨论】:

【参考方案2】:

在 chrome 中,重新加载 iframe 的代码是(使用纯 javascript):

    document.getElementById('iframeID').location.reload(); document.getElementById('iframeid').src += '';

第一种方法通过调用 reload() 方法重新加载 iframe,第二种方法通过附加一个空字符串来重新加载 iframe,这会强制 iframe 重新加载。

【讨论】:

感谢您的建议,但如果我们调整浏览器大小以解决问题,更改 iframe 的 url 实际上似乎会触发问题 b/c,当用户导航到iframe。 @jessieloo 在这种情况下,您可以尝试选项 1

以上是关于如何让 chrome 重新渲染 iframe的主要内容,如果未能解决你的问题,请参考以下文章

如何强制 linux 上的 chrome 重新计算/重新渲染 ":hover" 样式?

为使用React的网站制作Chrome扩展程序。重新渲染后如何保持更改?

子组件不会重新渲染,但父组件会重新渲染。如何让子组件重新渲染?

如何让按钮在发送时刷新页面,并且在重新加载时同时使用相同的按钮让 iframe 滚动到框架的底部

Salesforce:Javascript 不想重新渲染(经过 Chrome 测试)

在 CSSStyleDeclaration 更新时强制文档重新渲染(chrome)