|
@@ -766,11 +766,13 @@ const processIframeLinks = async () => {
|
|
|
tempIframe.style.display = 'none'
|
|
|
tempIframe.src = iframeSrc
|
|
|
|
|
|
+ // 先将临时iframe添加到body,否则onload事件不会触发
|
|
|
+ document.body.appendChild(tempIframe)
|
|
|
// 等待iframe加载完成
|
|
|
await new Promise((resolve, reject) => {
|
|
|
tempIframe.onload = resolve
|
|
|
tempIframe.onerror = reject
|
|
|
- // 设置超时时间
|
|
|
+ // 可选:设置超时时间,避免长时间无响应
|
|
|
setTimeout(() => reject(new Error('Timeout')), 5000)
|
|
|
})
|
|
|
|
|
@@ -785,7 +787,10 @@ const processIframeLinks = async () => {
|
|
|
isHTML: false,
|
|
|
url: iframeSrc
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+ // 加载完成但无法获取contentWindow,也要移除iframe
|
|
|
+ document.body.removeChild(tempIframe)
|
|
|
+
|
|
|
}
|
|
|
catch (error) {
|
|
|
console.log(`iframe ${iframeSrc} 无法获取contentWindow,使用HTML方式:`, error)
|