如何让 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的主要内容,如果未能解决你的问题,请参考以下文章