GM_HttpReq

获取提交参数方法

当前为 2023-04-14 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/463963/1175529/GM_HttpReq.js

  1. // ==UserScript==
  2. // @name GM_HttpReq
  3. // @version 0.2
  4. // @description 获取提交参数方法
  5. // @license All Rights Reserved
  6. // ==/UserScript==
  7.  
  8. function priceOpen() {
  9. var open = XMLHttpRequest.prototype.open;
  10. var send = XMLHttpRequest.prototype.send;
  11. XMLHttpRequest.prototype.open = function () {
  12. var url = arguments[1];
  13. var method = arguments[0];
  14. if (method.toUpperCase() === 'GET' && url.indexOf('mtop.damai.cn/h5/mtop.alibaba.detail.subpage.getdetail') != -1) {
  15. this._url = url; //保存请求的 URL
  16. console.log('获取到了GET request');
  17. }
  18. open.apply(this, arguments);
  19. };
  20.  
  21. XMLHttpRequest.prototype.send = function () {
  22. this.addEventListener('readystatechange', function () {
  23. if (this.readyState === 4 && this.status === 200 && this._url && this._url.indexOf('mtop.damai.cn/h5/mtop.alibaba.detail.subpage.getdetail') != -1) {
  24. var responseText = JSON.parse(this.responseText);
  25. var result = JSON.parse(responseText.data.result);
  26. var skuList = result.perform.skuList;
  27. // 解析响应内容,获取相关信息
  28. console.log('获取到可选择的场次详情:', skuList);
  29. const skuIds = [];
  30. const itemIds = [];
  31. const priceNames = [];
  32. for (var k = 0; k < skuList.length; k++) {
  33. skuIds.push(skuList[k].skuId);
  34. itemIds.push(skuList[k].itemId);
  35. priceNames.push(skuList[k].priceName);
  36. }
  37. sessionStorage.setItem('skuIds', skuIds);
  38. sessionStorage.setItem('itemIds', itemIds);
  39.  
  40. let priceNameStr = "";
  41. for (let i = 0; i < priceNames.length; i++) {
  42. priceNameStr += i + " : " + priceNames[i] + "\n";
  43. }
  44. alert("选择票价对应的序号输入: \n\n" + "当前选择场次:" + result.perform.performName + "\n\n" + priceNameStr);
  45. }
  46. });
  47. send.apply(this, arguments);
  48. };
  49. }