lsc 2 days ago
parent
commit
3d48154f8a
1 changed files with 17 additions and 1 deletions
  1. 17 1
      src/views/Student/index.vue

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

@@ -1144,6 +1144,14 @@ const handleHomeworkSubmit = async () => {
           }
 
           try {
+            const a = iframeBody.getElementsByTagName('img')
+            const b = iframeBody.getElementsByTagName('video')
+            for (let i = 0;i < a.length;i++) {
+              a[i].crossOrigin = 'anonymous'
+            }
+            for (let i = 0;i < b.length;i++) {
+              b[i].crossOrigin = 'anonymous'
+            }
             // 直接对iframe内部的body进行截图
             const html2canvas = await import('html2canvas')
             const canvas = await html2canvas.default(iframeBody, {
@@ -1156,6 +1164,7 @@ const handleHomeworkSubmit = async () => {
               removeContainer: true
             })
             imageData = canvas.toDataURL('image/png', 0.95)
+            
             console.log('成功截图iframe内部内容')
           }
           catch (html2canvasError) {
@@ -1244,7 +1253,14 @@ const handleHomeworkSubmit = async () => {
                 throw new Error('无法创建canvas上下文')
               }*/
             }
-
+            const _a = iframeBody.getElementsByTagName('img')
+            const _b = iframeBody.getElementsByTagName('video')
+            for (let i = 0; i < _a.length; i++) {
+              _a[i].removeAttribute('crossorigin')
+            }
+            for (let i = 0; i < _b.length; i++) {
+              _b[i].removeAttribute('crossorigin')
+            }
             // 将base64字符串转换为File对象
             const base64ToFile = (base64String: string, filename: string): File => {
               const arr = base64String.split(',')