|
|
@@ -319,20 +319,24 @@ const handleIframeLoad = async (event: Event) => {
|
|
|
if (iframe.contentDocument) {
|
|
|
console.log('type=73 同源可访问 contentDocument,标记 isDone,保留直接加载')
|
|
|
slidesStore.updateElement({ id: info.id, props: { isDone: true } })
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ else {
|
|
|
console.log('type=73 跨域,尝试抓取 HTML 做 srcdoc')
|
|
|
let html: string | null = null
|
|
|
try {
|
|
|
html = await api.getHTML(info.url)
|
|
|
- } catch (_e) {
|
|
|
+ }
|
|
|
+ catch (_e) {
|
|
|
try {
|
|
|
const fd = await getFile(info.url)
|
|
|
if (fd?.data) html = new TextDecoder('utf-8').decode(new Uint8Array(fd.data))
|
|
|
- } catch (_e2) {
|
|
|
+ }
|
|
|
+ catch (_e2) {
|
|
|
try {
|
|
|
const fd2 = await getFile2(info.url)
|
|
|
if (fd2?.data) html = new TextDecoder('utf-8').decode(new Uint8Array(fd2.data))
|
|
|
- } catch (e3) {
|
|
|
+ }
|
|
|
+ catch (e3) {
|
|
|
console.error('type=73 抓取全部失败:', e3)
|
|
|
}
|
|
|
}
|
|
|
@@ -347,12 +351,13 @@ const handleIframeLoad = async (event: Event) => {
|
|
|
props: { isHTML: true, url: html, curl: info.url, isDone: true },
|
|
|
})
|
|
|
return // updateElement 会触发 iframe 重建,不再走下面的 JS 注入
|
|
|
- } else {
|
|
|
- console.warn('type=73 抓取失败,回退为直接加载,标记 isDone')
|
|
|
- slidesStore.updateElement({ id: info.id, props: { isDone: true } })
|
|
|
- }
|
|
|
+ }
|
|
|
+ console.warn('type=73 抓取失败,回退为直接加载,标记 isDone')
|
|
|
+ slidesStore.updateElement({ id: info.id, props: { isDone: true } })
|
|
|
+
|
|
|
}
|
|
|
- } catch (err) {
|
|
|
+ }
|
|
|
+ catch (err) {
|
|
|
console.error('type=73 延迟处理异常:', err)
|
|
|
// 出错也设 isDone=true,避免无限重试
|
|
|
slidesStore.updateElement({ id: info.id, props: { isDone: true } })
|