网页与chrome插件实现交互,网页通过插件调取接口获取数据

ops/2024/9/24 4:21:06/

最近有个需求需要网页调用插件,实现获取淘宝数据

大概思路如下:

  • 插件匹配网站url注入js
  • 网页上通过postmessage发送数据到content.js
  • content.js 中通过监听 postmessage获取参数,然后获取淘宝数据,然后再回传给网页
  • 网页监听content.js 传递的消息获取数据

网页端封装请求

export function cjPost(obj) {return new Promise((resolve, reject) => {let { funName, postData, timeout, isLoading = true } = { ...obj };let timer = '';obj['type'] = 'vue-send';//发送obj['sign'] = getSign();//签名let fun = (e) => {if(e.data.sign && e.data.sign == obj.sign && e.data.type && e.data.type == 'plugin-send' ) {setLoad(isLoading);let res = e.data.data// 滑块验证if(isHk(res)) {openHk(res.data.url);}else{resolve(res);}removeEventListener('message',fun);clearTimeout(timer);}}openLoading(isLoading);postMessage(obj);addEventListener('message',fun)//超时销毁监听timer = setTimeout(() => {removeEventListener('message',fun);reject({state: false,msg: '请求超时'});}, timeout || TIMEOUT);})
}

插件端消息封装

$(function() {// 监听网页发送addEventListener('message', async function(e) {if (e.data.type && e.data.type == 'vue-send') {let funName = e.data.funName;let postData = e.data.postData ? JSON.stringify(e.data.postData) : '';if(!funName) {return}let res = await eval(funName + '('+ postData +')');let data = {type: 'plugin-sed',sign: e.data.sign,data: res,}postMessage(data);}})//淘宝h5接口调用函数})

http://www.ppmy.cn/ops/14443.html

相关文章

Spring Boot入门(23):【实战】通过AOP拦截Spring Boot日志并将其存入数据库

在Spring Boot应用中,通过AOP(面向切面编程)拦截日志并将其存入数据库是一个常见的需求,可以帮助开发者更好地监控应用的运行状态和问题排查。以下是实现这一功能的基本步骤: 1. 引入依赖 首先,确保你的p…

PE结构(二)PE头字段说明

PE头字段 DOS头 PE标记 标准PE头 可选PE头 我们今天分析一下PE头字段中所有重要成员的含义 DOS头 DOS头中我们需要去分析的是如下两个成员: 1.WORD e_magic:MZ标记,用于判断是否为可执行文件,即如果显示4D 5A,…

51单片机入门_江协科技_35~36_OB记录的自学笔记_AD与DA转换(XPT2046)

35. AD_DA 35.1. AD/DA介绍 •AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 •DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换…

绿色便携方式安装apache+mysql+tomcat+php集成环境并提供控制面板

绿色便携方式安装带控制面板的ApacheMariaDBTomcatPHP集成环境 目录 绿色便携方式安装带控制面板的ApacheMariaDBTomcatPHP集成环境[TOC](目录) 前言一、XAMPP二、安装和使用1.安装2.使用 三、可能的错误1、检查端口占用2、修改端口 前言 安装集成环境往往配置复杂&#xff0c…

数据结构之双链表的相关知识点及应用

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构 目录 双链表的实现 初始化双链表 在双链表中尾插数据 在双链表中尾删数据 在双链表中头插数据 在双链表中头删数据 在双…

课时105:正则表达式_进阶知识_扩展符号

1.1.1 扩展符号 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 字母模式匹配[:alnum:] 字母和数字[:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z][:upper:] 大…

智慧物流时代:数字化转型下的物流新篇章

一、什么是智慧物流? 智慧物流是一种利用先进科技和信息技术优化物流供应链系统的新型模式。以数据为核心,智慧物流通过物联网、云计算、大数据和人工智能等技术手段实现物流信息的全面记录、无缝对接和智能化处理。其核心在于实现物流各环节的精细化、…

Spark pivot数据透视从句

1. 概念2. 实战 2.1. 新列的决定因素2.2. 新列别名2.3. column_list中指定多个字段2.4. 多个聚合函数的使用2.5. 最终出现在SQL结果中的决定因素 Spark pivot数据透视从句 1. 概念 描述 用于数据透视,根据特定的列获取聚合值,聚合值将转换为select子句…