chrome extension无法获取window对象

这篇具有很好参考价值的文章主要介绍了chrome extension无法获取window对象。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景见上一篇博客修改网页内容的方法
上一篇博客之后,我要修改的网页有一个新改版,然后有个数据存在了window中,我直接在js中使用window.xxx发现无法获取。所以有本文。

https://juejin.cn/post/7145749643316428830
https://onelinerhub.com/chrome-extension/window_object#:~:text=chrome-extension%20How%20to%20access%20or%20modify%20window%20object,%3D%20%27console.log%20%28window%29%3B%27%3B%20%28document.head%7C%7Cdocument.documentElement%29.appendChild%20%28script%29%3B%20ctrl%20%2B%20c

搜了一下发现有两种方法,如上,大概就是:

方法1

var script = document.createElement('script');
script.textContent = 'console.log(window);';
(document.head||document.documentElement).appendChild(script);

出现报错:

extensions_version_page.js:6 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-XnQUOdrKm+cYqdkT/ljnkhjaYaitt2Xh3uRQxH/M9z0='), or a nonce ('nonce-...') is required to enable inline execution.

方法2

{
  "name": "yeshen_extresion",
  "version": "1.0",
  "description": "yeshen test",
  "manifest_version": 3,
  "web_accessible_resource": [
    {
      "resources": [
        "assets/*",
        "js/contentScript.js"
      ]
    }
  ],
  "content_scripts": [
    {
      "matches": [
        "https://innovation.pm.netease.com/v6/issues/*",
        "https://web.pm.netease.com/v6/issues/*",
        "https://uu.pm.netease.com/v6/issues/*",
        "https://msdk.pm.netease.com/v6/issues/*"
      ],
      "js": [
        "extensions_issue_page.js"
      ],
      "run_at": "document_start"
    },
  ]
}
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-XnQUOdrKm+cYqdkT/ljnkhjaYaitt2Xh3uRQxH/M9z0='), or a nonce ('nonce-...') is required to enable inline execution.

报错比较清晰,就是注入的代码和原有代码不在一个域下,无法操作/注入javascript对象。

最后我是这样做的:

我的方法一

从其他页面获取这个数据,在url参数中携带这个信息;

我的方法二

从dom节点中获取第一个元素信息,然后通过网络请求,重新请求需要的数据。文章来源地址https://www.toymoban.com/news/detail-698353.html

到了这里,关于chrome extension无法获取window对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • google Chrome通过 扩展程序获取windows MAC地址

    介绍 chrome 获取mac地址插件 软件架构 参考chrome插件开发规范 安装教程 将插件根目录拷贝到任意磁盘目录,一旦选定切勿搬移,目录名不包含空格。 修改manifest.json 中matches属性为要启用的网站域名 安装chrome浏览器,打开浏览器 = 更多工具 = 扩展程序 = 开发者模式 = 加载已解

    2024年02月06日
    浏览(58)
  • AXURE RP EXTENSION For Chrome 安装

    在浏览器上输入地址:chrome://extensions/ 打开图片中这个选项,至此你就能通过index.html访问

    2024年02月07日
    浏览(42)
  • Axure插件axure-chrome-extension安装

    chrome浏览器打开axure生成的HTML静态文件页面预览打开如下图显示 ,这是因为chrome浏览器没有安装Axure插件axure-chrome-extension导致的。 方式一:先下载Axure谷歌浏览器插件,然后在浏览器中添加扩展程序。添加已解压得扩展程序。 插件下载地址:https://download.csdn.net/download/qq_41

    2024年02月11日
    浏览(91)
  • Axure RP Extension for Chrome解决办法

    在谷歌预览原型的时候发现需要下载插件才能预览,但是谷歌自己的下载不了。我现在将网上查阅各路大神的解决方案,找到这一种比较使用的,整理如下。 方法一: 直接点击下载安装插件  axure-chrome-extension下载 方法二:  1、打开原型文件夹,依次点开resources-chrome,找到

    2024年02月15日
    浏览(47)
  • #Chrome扩展程序开发教程--02:Hello Extensions

            本系列博客旨在带来最新的Chrome扩展程序开发入门教程。         本节博客中,笔者将带领读者创建一个最简单的扩展程序:                          1.创建一个文件夹,并在里面创建一个名为 manifest.json 的文件,输入以下内容: 这里面的 “act

    2023年04月22日
    浏览(34)
  • 后端用对象接收json时,对象无法获取值的问题

    在项目里做前端传json到后端处理数据时,由于传递的json比较复杂,故用对象进行接收,但在postman测试时发现无论如何对象都没法成功接收值 (这里我直接把接收到的值又回传了,方便直接在postman查看) 问题排查 1.猜测缺少@RequeBody,实际上项目controller层包含了RestControlle

    2024年02月13日
    浏览(41)
  • chrome extensions插件declarativeNetRequest修改user-agent方法manifest v3版

    有能力的可以看官方文档:https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest/#manifest 有一个需求,想通过插件的方式,修改请求头里面的user-agent,比如修改为iphone的头: 原本浏览器的请求头是: 通过查询发现,v2版本修改请求头的方式为:但是这种方式已经被废弃

    2024年02月01日
    浏览(92)
  • VueJs+chrome-extension+element-ui天气预报的小插件

    这里通过chrome-extension + VueJs + element-ui来实现个天气预报的小插件,如下图: 1.1 创建项目         通过vue-cli脚手架3.0版本来创建项目,命令如下: 默认选择是vue2.0语法 Successfully代表安装成功。 这里不是做web项目,所以删除vue-cli3脚手架的部分文件,删除文件如下: src/m

    2024年02月04日
    浏览(44)
  • spring boot applicationContext.getBeansOfType 无法获取所有bean对象

     代码如上所示,我想在某个service中注入所有AvatarScanCallback类型bean对象,但是发现无法注入全部bean, 最后检查发现是因为有些AvatarScanCallback的子对象中存在循环依赖问题导致此时只能获取一部分。  

    2024年02月17日
    浏览(39)
  • 【iOS】Category、Extension和关联对象

    Category 是 比继承更为简洁 的方法来对 Class 进行扩展,无需创建子类就可以为现有的类动态添加方法。 可以给项目内任何已经存在的类 添加 Category 甚至可以是系统库/闭源库等只暴露了声明文件的类 添加 Category (看不到 .m 文件的类) 通过 Category 可以添加 实例方法、类方法、属

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包