问题描述
我注意到在 Firefox 上发生了奇怪的行为,即通过ServiceWorker加载的iframe页面丢失了父级的引荐来源网址。
我有一个通过iframe嵌入到父网站的页面。该页面使用parent.postMessage()
与父窗口进行通信,并将document.referrer
作为targetorigin
参数。它还注册ServiceWorker以使用内容的缓存版本。首次加载iframe页面且尚未注册ServiceWorker时,document.referrer
的值与预期的父页面的URL相同。但是,当我刷新网站并iframe加载ServiceWorker返回的页面的缓存版本时,document.referrer
为空。在这种情况下,是否还需要执行其他步骤来维护父级的引荐来源网址(例如策略标头)?奇怪的是,这在基于Webkit的浏览器中不会发生。
ServiceWorker代码:
const cacheName = 'XXX';
const resources = [...];
self.addEventListener('install',event => {
event.waitUntil(
caches.open(cacheName)
.then(cache => cache.addAll(resources))
);
});
self.addEventListener('fetch',function (event) {
event.respondWith(
caches.match(event.request)
.then(function (response) {
if (response) {
return response;
}
return fetch(event.request);
})
);
});
感谢,
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)