|
@@ -1498,26 +1498,24 @@ const handleRefreshPage = () => {
|
|
|
// 遍历所有iframe并刷新
|
|
|
for (let i = 0; i < iframes.length; i++) {
|
|
|
const iframe = iframes[i] as HTMLIFrameElement
|
|
|
- const currentSrc = iframe.src
|
|
|
-
|
|
|
- if (currentSrc) {
|
|
|
- console.log(`刷新iframe ${i + 1}:`, currentSrc)
|
|
|
-
|
|
|
- // 保存当前src
|
|
|
- const originalSrc = currentSrc
|
|
|
-
|
|
|
- // 清空src触发刷新
|
|
|
- iframe.src = ''
|
|
|
-
|
|
|
- // 短暂延迟后恢复src,确保刷新生效
|
|
|
+ // 优化刷新方式,避免闪烁和兼容 srcdoc 场景
|
|
|
+ if (iframe.src) {
|
|
|
+ // 仅当有src属性时刷新
|
|
|
+ const originalSrc = iframe.src
|
|
|
+ // 通过重新赋值src实现刷新,避免先清空再赋值导致的闪烁
|
|
|
+ iframe.src = originalSrc
|
|
|
+ console.log(`刷新iframe ${i + 1}:`, originalSrc)
|
|
|
+ refreshedCount++
|
|
|
+ } else if (iframe.srcdoc) {
|
|
|
+ // srcdoc场景下,重新赋值srcdoc内容
|
|
|
+ const originalSrcdoc = iframe.srcdoc
|
|
|
+ iframe.srcdoc = ''
|
|
|
setTimeout(() => {
|
|
|
- iframe.src = originalSrc
|
|
|
- console.log(`iframe ${i + 1} 刷新完成`)
|
|
|
- }, 100)
|
|
|
-
|
|
|
+ iframe.srcdoc = originalSrcdoc
|
|
|
+ console.log(`iframe ${i + 1} (srcdoc) 刷新完成`)
|
|
|
+ }, 50)
|
|
|
refreshedCount++
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
if (refreshedCount > 0) {
|
|
|
message.success(`刷新完成`)
|