|
|
@@ -1852,7 +1852,7 @@ const handleHomeworkSubmit = async () => {
|
|
|
}
|
|
|
}
|
|
|
else if (slides.value[slideIndex.value].elements.some((element: any) => element.isHTML)) {
|
|
|
- // message.warning('当前页面暂不支持作业提交')
|
|
|
+ message.info('尝试截图当前页面并提交ISHTML')
|
|
|
console.log('尝试截图当前页面并提交')
|
|
|
// return
|
|
|
try {
|
|
|
@@ -2065,6 +2065,7 @@ const handleHomeworkSubmit = async () => {
|
|
|
}
|
|
|
}
|
|
|
else {
|
|
|
+ message.info('尝试截图当前页面并提交')
|
|
|
const screenSlides = document.querySelectorAll('.viewer-canvas .screen-slide')
|
|
|
let iframeElement: HTMLIFrameElement | null = null
|
|
|
|
|
|
@@ -2077,6 +2078,7 @@ const handleHomeworkSubmit = async () => {
|
|
|
iframeElement = screenSlides[slideIndex.value].querySelector('iframe') as HTMLIFrameElement
|
|
|
}
|
|
|
else {
|
|
|
+ message.error('未能获取到iframe元素,无法截图')
|
|
|
throw new Error('未能获取到iframe元素,无法截图')
|
|
|
}
|
|
|
|
|
|
@@ -2088,11 +2090,12 @@ const handleHomeworkSubmit = async () => {
|
|
|
iframeElement.contentWindow.document &&
|
|
|
iframeElement.contentWindow.document.body
|
|
|
) {
|
|
|
- isSubmitting.value = true
|
|
|
+ try {
|
|
|
+ isSubmitting.value = true
|
|
|
|
|
|
- const _ajs = iframeElement.contentWindow.document.createElement('script')
|
|
|
- _ajs.type = 'text/javascript'
|
|
|
- _ajs.innerHTML =
|
|
|
+ const _ajs = iframeElement.contentWindow.document.createElement('script')
|
|
|
+ _ajs.type = 'text/javascript'
|
|
|
+ _ajs.innerHTML =
|
|
|
'var _js = document.createElement("script");\n' +
|
|
|
'_js.type="text/javascript";\n' +
|
|
|
'_js.src="https://beta.cloud.cocorobo.cn/js/Common/html2canvas-pro.min.js";\n' +
|
|
|
@@ -2125,8 +2128,14 @@ const handleHomeworkSubmit = async () => {
|
|
|
' });\n' +
|
|
|
'}\n' +
|
|
|
'document.head.appendChild(_js);\n'
|
|
|
- iframeElement.contentWindow.document.head.appendChild(_ajs)
|
|
|
- return
|
|
|
+ iframeElement.contentWindow.document.head.appendChild(_ajs)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ catch (error) {
|
|
|
+ message.error('获取iframe内部body元素失败,无法截图')
|
|
|
+ throw new Error('获取iframe内部body元素失败,无法截图')
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -2142,6 +2151,7 @@ const handleHomeworkSubmit = async () => {
|
|
|
}
|
|
|
catch (error) {
|
|
|
console.error('作业提交过程中出错:', error)
|
|
|
+ message.error('作业提交过程中出错:' + error)
|
|
|
message.error(lang.ssHwSubmitFail)
|
|
|
isSubmitting.value = false
|
|
|
addOp3(1, new Date().getTime(), { courseid: props.courseid, homeworkContent }, 'error')
|