社区首页 >问答首页 >如何从GreaseMonkey用户脚本中请求二进制文件?

如何从GreaseMonkey用户脚本中请求二进制文件?
EN

Stack Overflow用户
提问于 2012-05-28 07:01:44
回答 2查看 1.1K关注 0票数 3

背景故事

我编写了一个专门的图像内联脚本,用于GreaseMonkey和Google。它应该下载PNG文件并将它们存储在data: urls中的图像src属性中。这听起来可能很荒谬,但某个网站将Content-Disposition设置为attachment以获取图像,而且我不希望每次都会弹出“另存为”对话框。

实际问题

该脚本使用XMLHttpRequest获取数据,将其编码为base64并将其存储在适当的位置。到目前为止很好。但是,只有当我通过Firebug和Chrome控制台运行它时,它才能工作,而当我使用它作为适当的用户脚本时,它就不能工作了。据我所知,这是因为Greasemonkey脚本不能直接使用XMLHttpRequest对象,而应该依赖于对GM_xmlhttpRequest的调用。但是,我不能这样将responseType设置为"blob""arraybuffer",而且binary参数似乎只适用于通过POST请求发送数据。我只得到Unicode字符串。

以防万一,图像与链接到它们的页面来自同一个域。我相信它满足了同样的起源。

xmlhttpRequest这里是GM_xmlhttpRequest文档。

是否有一种方法从Greasemonkey用户脚本中获取arraybuffer

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-28 17:38:14

如果相同的域,那么您可以使用XMLHttpRequest,没有问题.使用GM_xmlhttpRequest的唯一原因是图像/文件是否跨域(它目前有一个功能受损的子集)。

对于同域,可以使用XHR2,如这个答案所示.

对于跨域,您必须使用GM_xmlhttpRequest,重写mime类型,并使用自定义编码器算法。同样,所有这些都在同样的答案中显示。

然而,听起来你只是想让下载图片更容易吗?如果是这样的话,那么您最好只使用优秀的DownThemAll扩展

票数 2
EN

Stack Overflow用户

发布于 2012-05-28 07:18:36

overrideMimeType字符串(兼容性: 0.6.8+)可选。使用请求指定的MIME类型(E.G. "text/html;charset=ISO-8859-1")。

您可以将其设置为plain/text; charset=x-user-defined (类型不重要,但字符集重要),按位并通过响应字符串将值添加到类型化数组并获取缓冲区:

代码语言:javascript
代码运行次数:0
复制
var text = xhr.responseText,
    len = text.length,
    arr = new Uint8Array(len),
    i = 0;

    for( i = 0; i < len; ++i ) {
        arr[i] = text.charCodeAt(i) & 0xFF;
    }

    arr.buffer //The arraybuffer

注意:这是原始二进制响应,而不是base64。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10786710

复制
相关文章
Springsecurity从当前请求对象中获取用户信息
SpringMVC中Controller的请求参数都是当前请求HttpServletRequest带来的,Authentication Principal也是HttpServletRequest带来的,在Controller层我们拿到的是HttpServletRequest的实例是Servlet3SecurityContextHolderAwareRequestWrapper
周杰伦本人
2022/10/25
2.9K0
如何从抓包文件中分析慢请求
大家好,我是蓝胖子,请求慢的原因很多,当出现前端反应接口慢时,而通过后端日志查看请求处理时间并不慢时,往往会手足无措,当面对网络问题出现手足无措时,这就是在提醒你该抓包分析了,那么一般如何根据抓包文件去分析慢请求呢,今天我们就来看看。
蓝胖子的编程梦
2023/06/19
7190
如何从抓包文件中分析慢请求
如何从组中删除Linux用户?
在Linux中,用户可以是一个主要组和一个或几个次要(辅助)组的成员。文件“ / etc / group”为Linux系统中的每个用户定义了组成员身份。
用户6543014
2020/04/07
19.6K0
如何从文本中构建用户画像
一文告诉你什么是用户画像 介绍了到底什么是用户画像,了解了用户画像的本质是为了让机器去看之后,这里谈一谈如何从文本中构建用户画像。
abs_zero
2018/04/11
4.8K0
如何从文本中构建用户画像
shell脚本添加用户删除用户删除文件的脚本实现
#/bin/bash # DEBUG=0 ADD=0 DEL=0 RM=0 while [ $# -gt 0 ] do case $1 in -v|-verbose) DEBUG=1 shift ;; -h|--help) #帮助文档 echo "`basename $0` --add LIST --del LIST -h|--help --rm LIST" exit 0 ;; --add
艳艳代码杂货店
2021/10/30
1.6K0
接口测试如何在post请求中传递文件
2.找到body这个选项,输入文件对应的参数名,在然后把参数名后面的text选择为file。
sik1
2022/06/21
3.4K0
油猴脚本入坑指南
即每个油猴脚本都有的,脚本开头很多行注释的内容,这是油猴脚本关键的基础部分,刚开始接触可能会一头雾水,但你绝不能忽视这部分内容
子润先生
2021/06/09
4.3K0
从Go的二进制文件中获取其依赖的模块信息
我们用 Go 构建的二进制文件中默认包含了很多有用的信息。例如,可以获取构建用的 Go 版本:
Jintao Zhang
2021/02/26
2.6K0
PHP 用户请求数据获取与文件上传
我们上篇教程提到,要获取 HTTP 请求数据,可以通过 $_GET、$_POST、$_REQUEST 等 PHP 内置的超全局变量,如果要获取 Cookie 和文件上传信息,可以通过额外的 $_COOKIE 和 $_FILES。今天,学院君就来给大家演示下如何使用这些超全局变量获取请求数据。
学院君
2020/08/04
2.6K0
携程如何从海量数据中构建精准用户画像?
用户画像作为“大数据”的核心组成部分,在众多互联网公司中一直有其独特的地位。 作为国内旅游OTA的领头羊,携程也有着完善的用户画像平台体系。目前用户画像广泛用于个性化推荐,猜你喜欢等;针对旅游市场,携程更将其应用于“房型排序”“机票排序”“客服投诉”等诸多特色领域。本文将从目的,架构、组成等几方面,带你了解携程在该领域的实践。 1.携程为什么做用户画像 首先,先分享一下携程用户画像的初衷。一般来说,推荐算法基于两个原理“根据人的喜好推荐对应的产品”“推荐和目标客人特征相似客人喜好的产品”。而这两条都离不开用
用户1263954
2018/01/30
2.7K0
携程如何从海量数据中构建精准用户画像?
Google Chrome 增加 Greasemonkey 支持
Google 浏览器一个基本的缺失就是 Firefox 已经提供很久的插件和扩展。所以很多 Firefox 用户始终无法真正用上 Google 浏览器,其实根本的原因是 Google 浏览器看起来还是非常早期 beta 版本。
Denis
2023/04/13
4800
JavaScript 中如何取消请求
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情
掘金安东尼
2022/09/19
1.3K0
JavaScript 中如何取消请求
Windows如何运行.sh脚本文件
我们都知道sh文件在Linux服务器上可以直接执行,基本没有怎么关注过在windows上是否可以执行,平时开发的过程当中,经常会需要将修改的代码提交到gitLab/gitHub,提交代码有时候是一个固定的流程,对于这种情况,是否可以通过shell来进行自动化,这是需要学习的内容,本文就当做基本入门了解
在水一方
2022/06/14
26.1K0
Windows如何运行.sh脚本文件
linux中编写同步文件的脚本
搭集群最麻烦的就是修改配置文件,如果只用修改一个机器上的配置文件,然后用一个脚本就可以把配置文件同步到其他机器上,岂不快哉!
孙晨c
2020/07/07
2.3K0
【说站】Python脚本如何指定文件
(1)dest=files,是说将命令行中,--file的参数值赋值给变量files,你可以用args.files访问。
很酷的站长
2022/11/23
4990
【说站】Python脚本如何指定文件
JavaScript中如何取消ajax请求
jQuery为我们封装了ajax请求接口,在jQuery中,取消ajax请求也是通过调用.abort()方法,只不过操作的对象不再是原生XHR对象
刘亦枫
2020/03/19
3.2K0
shell 脚本中关于用户输入参数的处理
bash shell 中有一些特殊变量, 被称为 位置参数(positional parameter).
IT工作者
2022/07/03
2.5K0
如何快速获取抓包文件中HTTP请求的响应时间
在日常的工作中经常会会遇到一些请求性能问题,原因可发生在请求的每一个环节:客户端,网络,服务端,这里我们通常需要通过抓包来定位问题出在哪个环节。本文简单介绍一个小技巧,可以快速列出所有HTTP请求的header用时,进而找到耗时异常的请求,再进一步分析问题原因。
苏东
2020/07/08
11.8K0
如何快速获取抓包文件中HTTP请求的响应时间
点击加载更多

相似问题

是否允许用户从Greasemonkey脚本导入文件?

21

了解Greasemonkey如何运行用户脚本

14

greasemonkey用户脚本中的路由

12

如何从Greasemonkey脚本截取XMLHttpRequests?

61

在Greasemonkey中启动用户脚本

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文