Chrome 拓展v3 动态向页面插入脚本

背景:

想做一个chrome插件,向页面中添加脚本 css、js ,储存在storage中,每次打开页面,在content.js 中向页面注入执行页面匹配的脚本。 

现象:

开发使用v3版本会出现如下报错:

content.js:3 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' 'wasm-unsafe-eval' 'inline-speculation-rules' http://localhost:* http://127.0.0.1:*". Either the 'unsafe-inline' keyword, a hash ('sha256-V9GpKNFLjsNEd/UJJgggfaabRSwG4P7JESZwQazBLZY='), or a nonce ('nonce-...') is required to enable inline execution.
​​​​​​​​​​分析:

fchrome extension v3 内容安全策略 ( CSP ) 不允许 eval方法  script标签 等 向页面注入脚本

解决方案:

1.将脚本储存在sessionStorage

// content.js
sessionStorage.setItem('javascript', 'console.log("I am script from content.js! ",Date.now())')

2.向页面注入静态js脚本inject.js ,如何处理脚本的逻辑就在这个文件中


// content.js
sessionStorage.setItem('javascript', 'console.log("I am script from content.js! ",Date.now())')


// 注入inject.js
const url = chrome.runtime.getURL('inject.js')
const script = document.createElement('script')
script.src=url
document.body.appendChild(script)

3.inject.js获取脚本 并注入页面

// inject.js
const scriptStr = sessionStorage.getItem('javascript')
const script = document.createElement('script')
script.innerHTML = scriptStr
document.body.appendChild(script)

 效果:

花了很长时间才尝试出的方法。如果解决了你的问题 记得点个赞哟!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
### 回答1: postman for chrome-v3是一款非常受欢迎的Chrome浏览器插件,用于API开发和测试。它提供了一个用户友好的界面,使开发人员能够轻松地创建,发送和测试API请求。 使用postman for chrome-v3,我们可以方便地输入URL,选择请求类型(如GET、POST等),并添加请求参数。还可以设置请求headers、认证信息和Cookies等。用户可以在请求中添加预期结果,以便进行验证和测试。 该插件还提供了高级功能,如自动生成请求代码,用于各种编程语言(如JavaScript、Python等),方便开发人员在实际项目中使用API。此外,它还允许我们保存和组织我们的请求,使得我们可以轻松地回顾和复用以前的请求。 另一个非常有用的功能是postman for chrome-v3提供了一个集成的测试框架,可以编写和运行测试脚本,以验证API的响应是否符合预期。这对于自动化测试和持续集成非常有用。 总而言之,postman for chrome-v3是一个功能丰富且易于使用的Chrome浏览器插件,为开发人员提供了强大的工具来简化API开发和测试过程。无论是初学者还是经验丰富的开发人员,都可以从中受益,并提高他们的工作效率。 ### 回答2: postman for chrome-v3是一款用于Google Chrome浏览器的扩展程序,用于进行API开发和测试的工具。它提供了一个简单易用的界面,让用户能够方便地发送HTTP请求并查看响应。 postman for chrome-v3具有强大的功能,可以帮助开发人员在开发过程中更高效地测试和调试API。用户可以自定义请求头、请求参数和请求体,并且支持不同的HTTP方法,如GET、POST、PUT、DELETE等。用户还可以轻松地添加并管理多个环境变量,以便在不同环境中进行测试。 postman for chrome-v3还内置了强大的断言功能,用户可以通过输入条件来验证API响应的完整性和正确性。此外,它还支持自动化测试,用户可以将请求和断言合并为一个测试集合,并在批量运行中自动验证API的行为。 此外,postman for chrome-v3还提供了一个数据驱动功能,用户可以使用CSV或JSON文件作为数据源,自动为API发送多个请求,并将结果保存到文件中。这对于进行API性能测试和多场景测试非常有用。 总之,postman for chrome-v3是一款非常实用的Chrome浏览器扩展程序,可以帮助开发人员更高效地进行API开发和测试。它的强大功能和简单易用的界面使得测试API变得更加轻松和快速。无论是初学者还是有经验的开发者,postman for chrome-v3都是一个不可或缺的工具。 ### 回答3: Postman是一个强大的API开发工具,而Postman for Chrome-v3是该工具的Chrome浏览器扩展版本。 Postman for Chrome-v3具有许多功能,使开发人员能够更轻松地测试和调试API。首先,它允许用户创建HTTP或HTTPS请求,并发送它们以与特定API交互。用户可以指定请求的类型(例如GET、POST、PUT等)以及必要的参数。此外,用户还可以设置请求头和身份验证信息,以确保正确的请求发送到服务器。 该扩展还提供了一个直观的用户界面,用于显示请求和响应的详细信息。用户可以查看响应的状态码、头信息和主体内容。这对于调试API非常有用,因为它们可以轻松地确定请求是否成功,并检查返回的数据。 Postman for Chrome-v3还具有收藏夹功能,让用户可以保存和组织常用的请求。这样,用户可以在不必每次都手动输入所有参数的情况下,快速访问最常用的API请求。 此外,该扩展还支持请求和响应的导出和导入。用户可以将请求和响应数据保存为文件,并在需要时重新导入它们。这对于与团队共享和协作非常有用。 总的来说,Postman for Chrome-v3是一个功能强大且易于使用的Chrome浏览器扩展程序,它使开发人员能够更轻松地测试与API交互的请求和响应。它帮助提高开发效率,减少调试时间,并促进团队间的合作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值