lsc 3 gün önce
ebeveyn
işleme
18bb4a08a7
1 değiştirilmiş dosya ile 7 ekleme ve 6 silme
  1. 7 6
      src/views/Student/index.vue

+ 7 - 6
src/views/Student/index.vue

@@ -1101,18 +1101,19 @@ const handleHomeworkSubmit = async () => {
           // 尝试使用html2canvas,对iframe支持更好
           let imageData: string
           const screenSlides = document.querySelectorAll('.viewer-canvas .screen-slide')
-          let iframeElement: HTMLIFrameElement | null = null
-
-          // 直接获取iframe元素本身
+          let iframeElement: HTMLElement | null = null
           if (
             screenSlides &&
             screenSlides[slideIndex.value] &&
-            screenSlides[slideIndex.value].querySelector('iframe')
+            screenSlides[slideIndex.value].querySelector('iframe') &&
+            (screenSlides[slideIndex.value].querySelector('iframe') as HTMLIFrameElement).contentWindow &&
+            (screenSlides[slideIndex.value].querySelector('iframe') as HTMLIFrameElement).contentWindow!.document &&
+            (screenSlides[slideIndex.value].querySelector('iframe') as HTMLIFrameElement).contentWindow!.document.body
           ) {
-            iframeElement = screenSlides[slideIndex.value].querySelector('iframe') as HTMLIFrameElement
+            iframeElement = (screenSlides[slideIndex.value].querySelector('iframe') as HTMLIFrameElement).contentWindow!.document.body as HTMLElement
           }
           else {
-            throw new Error('未能获取到iframe元素,无法截图')
+            throw new Error('未能获取到iframe的body元素,无法截图')
           }
 
           try {