【问题标题】:Way To Inject Javascript in PWA on Non-PWA Pages?在非 PWA 页面上的 PWA 中注入 Javascript 的方法?
【发布时间】:2021-11-12 06:43:21
【问题描述】:

如果我制作了一个渐进式 Web 应用 (PWA),我将 manifest.json 文件中的显示更改为 browser 而不是人们通常为 PWA 选择的典型 standalone 首选项,并且用户打开应用并浏览到我无法控制的第三方网站,例如 Reddit.com,此应用是否仍然具有控制功能,例如能够像 Chrome 扩展一样将 Javascript 和 CSS 添加到页面中?

【问题讨论】:

  • 一般不会。网络安全背后的重点是防止这样的事情发生。将 javascript 注入 reddit.com 的能力称为 XSS,通常被认为是 reddit.com 的错误。允许扩展程序这样做是因为浏览器用户可能会意识到这一点,因为他们自己安装了扩展程序(并不总是一个有效的假设,但总比惊讶于 tinder.com 之类的东西(是的,有一个 PWA 版本的 Tinder)可以将随机 javascript 插入 reddit.com 或您的 gmail)
  • 工作脚本正在运行这一事实如何? Chrome 是否通过它为 PWA 提供了特殊功能?
  • 没有。 Web Worker 在普通网页和 PWA 中的工作方式相同。 Web Worker 只能由想要启动 Web Worker 的页面启动。您无法将网络工作者连接到另一个页面(这将如何工作?网络工作者无法访问 DOM,并且只能通过消息与您的主脚本通信,并且如果您想要将其注入的页面没有任何与 web worker 通信的代码 web worker 并不能真正做任何有用的事情)

标签: javascript progressive-web-apps


【解决方案1】:

display: "browser" 不提供独立的应用程序。它在普通浏览器选项卡/窗口中打开

我也不确定是否有任何浏览器实际上可以安装它。

例如,这不符合 Chrome 的可安装性标准

至于能够将 CSS 和 JS 注入其他页面,不,你不能这样做,任何显示模式。它只是一个花哨展示的网站。 PWA 不像移动应用中的 web 视图,浏览器仍然拥有整个显示上下文(渲染、扩展等),而不是已安装的应用

【讨论】:

    猜你喜欢
    • 2018-02-23
    • 2019-05-25
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 2019-08-19
    • 1970-01-01
    相关资源
    最近更新 更多