谷歌浏览器扩展插件开发-商品采集器
扩展介绍#
谷歌浏览器的扩展主要分5个类型页面,页面所能操作到的权限,都是有限制的,结合开放功能做实际需求操作。
表格上可以轻松看到不同页面拥有的不同权限。也就是说只能在injected-script
、content-script
、devtools
这3个文件下操作操作dom。而可调用的api也是有限制的,开发时,必须要确认现在要做的操作,是否对应了相应的页面。#
页面之间的数据交互,只能通过通讯api来进行通讯,比如:content-script
页面下点击事件,需要传到background
页面下进行网络请求操作,就需要通讯api来实现。#
通讯#
这里写了多个页面之间的通讯需要的api,这里介绍一下
content-script
与background
页面之间的通讯(api使用方法可以在插件文档上查询到):
content-script
发送时使用chrome.runtime.sendMessage
,在background
接收,用chrome.runtime.onMessage.addListener
。
相反:
background
发送时使用chrome.tabs.sendMessage
,在content-script
接收,用chrome.runtime.onMessage.addListener
。
配置#
所有需要的权限都需要在manifest.json
里的permissions
字段进行配置,包括使用的域名。通配符http://*/*
可能会存在一些问题,比如苹果电脑获取不到cookies
的问题。
还有一些请求问题,这个问题折腾了挺久,最后在backgorund.html
和manifest.json
文件下都增加了通配符配置才能进行请求,可以参考一下,如果有更好的处理,欢迎评论。
//manifest.json
"content_security_policy": "script-src 'self' 'nonece-123456' 'unsafe-eval'; object-src 'self';"
//background.html
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-eval' data: base64 gap: http://* https://* ;img-src *;style-src 'self' 'unsafe-inline'; media-src *;script-src * 'unsafe-inline' 'unsafe-eval'">
项目#
最后,做个项目的介绍。 这个项目主要实现1688和速卖通的产品采集到自己的管理系统,只是简单的在右键增加了按钮,进行采集。
- 每次右键的时候把id存起来,然后去
backgorund.js
页面下进行当前页面的数据请求和处理。 - 处理好的数据再去提交到管理后台,中途可能需要做登录,获取cookie啥的。
- 提交成功之后进行与
content-script
进行通讯,操作dom进行提示操作。
作者:Carver-大脸猫
出处:https://www.cnblogs.com/carver/articles/16633261.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
转载请注明原处
本文来自博客园,作者:Carver-大脸猫,转载请注明原文链接:https://www.cnblogs.com/carver/articles/16633261.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现