lsc 2 veckor sedan
förälder
incheckning
c26d83a212
1 ändrade filer med 15 tillägg och 17 borttagningar
  1. 15 17
      src/views/Student/index.vue

+ 15 - 17
src/views/Student/index.vue

@@ -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(`刷新完成`)