【油猴脚本 Greasemonkey】GM_xmlhttpRequest内部实现原理

本文探讨了Greasemonkey脚本中的GM_xmlhttpRequest函数实现原理,并针对Manifest V3中XMLHttpRequest的限制,提出在Chrome扩展中如何使用该功能。通过分析有道划词翻译的源码,介绍了如何在Chrome扩展中模拟GM_xmlhttpRequest,实现跨域请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好久没在CSDN发文章了,自从有了自己的网站,自己的想怎么折腾就怎么折腾,逐步的完善。

另一方面,技术上一直在吃老本,没什么进步,也没什么可发的。

最近在写一个Chrome浏览器扩展,了解到一个扩展和其它网站(准确的说是API)交互的功能,也就是跨域访问。

基于 Manifest V2 的content js中能不能使用 xmlhttpRequest  我没有尝试,至少在 Manifest V3 中是没办法跨域的,而在 background js 中 xmlhttpRequest 是不能使用的。

Chrome官方的 扩展开发文档中明确指出 在 Manifest V3 中,后台页面不支持 XMLHttpRequest(由 Service Workers 提供)。请考虑使用其现代替代品 fetch()。

回归正题

多数扩展脚本都会用到网络请求功能,对应的【油猴脚本 Greasemonkey】就是调用 GM_xmlhttpRequest 函数,这个函数内部是怎么实现的呢?拿到一段油猴脚本想用在自己开发的Chrome扩展中,但是用到了 GM_xmlhttpRequest 函数怎么办?

本文来讲一下实现原理,附代码。

缘起

网页上的即时翻译功能,大家用的较多的就是 划词翻译 了吧,但是今年以来互联网开始由开放转为封闭,很多原来免费的功能现在转为收费了,很多免费使用的翻译接口,现在虽然还没有完全收费,但是也需要自己去申请之后才能使用,这就是在收集用户信息了,只是第一步,接下来估计收费是一个趋势。

相关事件:搜狗翻译的官方平台搜狗深智引擎开放平台发出公告,将于 2022 年 2 月 28 日停止服务,公告具体内容可前往搜狗深智引擎开放平台官网查看。

百度翻译2022年7月14日发送了邮件通知,将从 8 月 1 日起下调每月的免费额度。

调整前免费额度 调整后免费额度
标准版 无限量 5 万字符 / 月
高级版 200 万字符 / 月 100 万字符 / 月

刚刚看到新闻:腾讯开始对会议收费

刚好自己最近也在研究Chrome扩展的开发,基本算了入门了一点点,所以就考虑自己实现一个划词翻译的功能。

于是网上找划词翻译的源码参考,就找到了 有道划词翻译 的一段源码分享,是基于油猴脚本的,

有道划词翻译源码

// ==UserScript==
// @name 有道划词翻译
// @version 0.111
// @author Jim Lin
// @originalAuthor Liu Yuyang(sa@linuxer.me)
// @match http://*/*
// @description 极简
// @grant GM_xmlhttpR
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值