【问题标题】:Sorviceworker in cross origin iframe跨源 iframe 中的服务员
【发布时间】:2022-01-26 07:17:40
【问题描述】:

我想在来自域 A 的页面上的 iframe 中加载来自域 B 的小插件。 来自域 B 的插件使用服务工作者来获得最佳性能。

但是,无法安装 SW,因为在 iframe 中加载 mage 时没有 service worker 对象。 不支持吗? (如果是这样,可能的原因是什么?)

if('serviceWorker' in navigator){
        let registration = await navigator.serviceWorker.register(uri)
        registration.update()
    }else{
        console.log('sw iframe not installed')
        console.log(navigator)
    }
}

【问题讨论】:

    标签: iframe cross-domain


    【解决方案1】:

    通过大量的尝试和调试,我找到了答案:

    • 源站 A 通过 http 托管
    • 来自域 B 的插件(显然)通过 https

    如果父级是 http,似乎 serviceworker 在 iframed https 站点中被阻止。

    如果有人知道这背后的原因,请告诉我 (没看到)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-28
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 2013-04-01
      • 1970-01-01
      • 2014-11-28
      相关资源
      最近更新 更多