javascript - 是否可以在友好的 iframe 中注册 Service Worker?

标签 javascript iframe service-worker

是否可以从友好的 iframe 内注册 Service Worker?

什么是友好的 iframe:

友好的 iframe 是与其托管的主页共享同一域的 iframe。这通常意味着内容是可信的,因此可以“突破” iframe 并操纵托管页面上的内容。

一般来说,serviceWorker 有一个注册方法,它接受一个字符串

所以我可以传递完整的绝对路径http://myowndomain.com/myserviceworker.js

澄清一下,myowndomain.com 与托管框架域不同。

serviceWorker
 .register('http://myowndomain.com/myserviceworker.js')
  .then(serviceWorker => {
   console.log(serviceWorker);
  }
})

并将其范围扩展到全局范围。 (通过不将范围传递给 serviceWorker 的选项对象来控制当前页面)。

它会起作用吗?

如果是这样,这难道不是一种安全尊崇吗?

最佳答案

so it make sense i can pass a full absolute path http://myowndomain.com/myserviceworker.js

for clarification myowndomain.com is different from the hosting frame domain.

都不是 <iframe>也不是window可以为除 <iframe> 之外的其他来源注册 Service Worker或window .

不存在将包含来源的 URL 传递到 navigator.serviceWorker.register() 的情况。会导致特殊行为。

  • 如果 URL 的来源与 navigator 的来源不同,然后 register()调用将会失败。
  • 如果 URL 的来源与 navigator 的来源相同,然后 register()调用将会成功,但您也可以省略 URL 的原始部分,而只传递绝对路径(即 '/serviceworker.js' )。

关于javascript - 是否可以在友好的 iframe 中注册 Service Worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49358052/

相关文章:

javascript - 如何从 ASP.Net 母版页中的外部 JavaScript 调用 Telerik radalert

javascript - 如何将 Prop 传递给 {this.props.children}

PHP 在 iframe 中打开链接

Javascript:列出同一范围内的所有变量(iframe)

jquery - 从 jquery 对话框 iframe 获取表单值

javascript - PWA - 即使在硬刷新后前端也不会更新

c# - 显示 SSN 的最后四位数字

javascript - 异步调用 facebook api 时丢失范围

javascript - 如何从导航器对象中删除 serviceWorker 属性?

offline - 服务人员打额外电话