我有一个扩展,需要在其背景页面中加载一个包含大量重定向的页面。一旦该页面到达一个已知的 URL ( https://website.com/index.php ),iframe 应该将其src
设置为about:blank
.
最后一页非常大,有大图像和不需要加载的所有内容,因此我没有附加到 iframe 的onload
事件,而是以 100 毫秒的间隔设置以下函数:
function update(){
if(document.getElementsByTagName('iframe')[0].contentDocument.location.href == "https://website.com/index.php"){
console.log("Done!");
clearInterval(updateInterval);
document.getElementsByTagName('iframe')[0].src = "about:blank";
}
}
但是,一旦 iframe 开始加载,update() 就会抛出此错误:
不安全的 JavaScript 尝试 从 URL 为 chrome-extension://hdmnoclbamhajcoblymcnloeoedkhfon/background.html 的框架访问具有 URL https://website.com/index.php的框架。请求访问的框架具有“chrome-extension”协议,被访问的框架具有“https”协议。协议必须匹配。
我尝试 catch() 处理该错误,但毫无疑问,传递回 Javascript 的消息不包含 URL。页面会多次重定向,因此了解确切的 URL 很重要。iframe的src
属性也不会更新以反映重定向。