首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将javascript注入到Chrome应用的DOM中

如何将javascript注入到Chrome应用的DOM中
EN

Stack Overflow用户
提问于 2017-05-08 15:32:16
回答 1查看 429关注 0票数 0

我正在开发一个铬应用程序,将作为一个基于Cylon project的Arduino代码编辑器。一个js脚本(让我们称它为output.js)被生成,合并了led切换逻辑或任何我们想通过arduino实现的东西,并使用browserify编译它与其他节点依赖项。在他们的chrome extension example中,他们静态地引用了index.html中的这个脚本。

由于我正在开发一个编辑器,允许用户在arduino上编写任意代码,因此我将动态生成output.js的内容。我已经可以成功地生成output.js的内容了,并且我已经编写了一个函数来将数据注入到script标记中。然而,Google Chrome抛出了一个错误:

代码语言:javascript
复制
Refused to execute inline script because it violates the following Content Security Policy directive: 
"default-src 'self' blob: filesystem: chrome-extension-resource:". 
Either the 'unsafe-inline' keyword, a hash ('sha256-Mugizlz7AFKJ2hm6UA9ySY/31cKCVhLaEX9/QYpJIsk='), 
or a nonce ('nonce-...') is required to enable inline execution. 
Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.

所以,我意识到我需要执行内联javascript,这可能是一个潜在的安全漏洞。我知道content scripts是专门为将自定义JS或CSS注入网页而设计的,但它们是在网站或网址的上下文中工作的。

我想修改dom,并在一个独立的chrome应用程序中注入自定义JS,而不是在一些网站或标签的上下文中工作的chrome扩展。从我在这个主题上所做的任何一点研究来看,我猜内容脚本对于chrome应用程序来说并不是一个有效的概念。然后我如何将javascript注入到用于chrome应用程序的DOM中。在这种情况下,我有哪些可能的内容脚本替代方案?

EN

回答 1

Stack Overflow用户

发布于 2017-05-08 15:44:55

在错误消息中包含散列的manifest.json文件可能会有所帮助。

例如,您的manifest.json可能如下所示:

代码语言:javascript
复制
{
  "manifest_version": 2,
  "name": "arduino editor",
  "version": "1.0.0",
  "minimum_chrome_version": "46",
  "content_security_policy": "script-src 'self' 'sha256-Mugizlz7AFKJ2hm6UA9ySY/31cKCVhLaEX9/QYpJIsk='",
  "background": {
    "page": "background.html"
  }
}

有关更深入的信息,请参阅下面的帖子。

Chrome Extension - Content Security Policy - executing inline code

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43842104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档