如何让 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 滚动到框架的底部