Javascript 获取下载的资源
因此,加载时的这个网页将下载一个JSON文件。我想看看JSON的内容,这可能吗 我试图修改XMLHttpRequest.prototype.open来捕捉这个东西,但我的脚本似乎是在下载后运行的,所以什么都没有 我所说的下载,是指在开发者工具的网络标签上,有一行写着“abc.json?废话” 注意:该文件是通过创建一个脚本元素并附加到BODY来下载的,然后销毁它(或者其他什么东西,因为之后我找不到它)Javascript 获取下载的资源,javascript,google-chrome,xmlhttprequest,tampermonkey,Javascript,Google Chrome,Xmlhttprequest,Tampermonkey,因此,加载时的这个网页将下载一个JSON文件。我想看看JSON的内容,这可能吗 我试图修改XMLHttpRequest.prototype.open来捕捉这个东西,但我的脚本似乎是在下载后运行的,所以什么都没有 我所说的下载,是指在开发者工具的网络标签上,有一行写着“abc.json?废话” 注意:该文件是通过创建一个脚本元素并附加到BODY来下载的,然后销毁它(或者其他什么东西,因为之后我找不到它) 使用/@run-at-document start@wOxxOm不确定run-at是否不起作用
使用
/@run-at-document start
@wOxxOm不确定run-at是否不起作用,或者是什么,但是我仍然无法使用调试器语句或控制台.log('something')
获取JSONDebug代码。不管怎么说,如果没有看到代码,很难判断出什么地方出了问题。@wOxxOm我包含了代码,你能看一下吗?看起来不错,实际上在我尝试过的几个网站上都可以使用。尝试在Devtools(F12键)->源代码->右窗格->事件侦听器断点->脚本->脚本第一条语句中查看这个难以捉摸的脚本元素。或者在上面的XHR断点中使用任何XHR
。在devtools打开时重新加载页面,它将捕获罪犯。
// ==UserScript==
// @name Download subtitle from wistia
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match http://*/*
// @grant none
// @run-at document-start
// ==/UserScript==
(function() {
'use strict';
var open = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
console.log("generic request: " + url);
if (url.indexOf(".json") > -1) {
console.log("json request");
this.addEventListener("readystatechange", function() {
if (this.readyState === 4 && this.status == 200) {
// parse content
var data = JSON.parse(this.responseText);
console.log("huh is coming");
console.log(data);
}
}, false);
}
open.call(this, method, url, async, user, pass);
};
})();