GM_HttpReq

获取提交参数方法

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

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

  1. // ==UserScript==
  2. // @name GM_HttpReq
  3. // @version 0.3
  4. // @description 获取提交参数方法
  5. // @license All Rights Reserved
  6. // @resource priceOpen https://greasyfork.org/zh-CN/scripts/463963-priceopen
  7. // @grant GM_getResourceText
  8. // ==/UserScript==
  9.  
  10. function priceOpen() {
  11. var open = XMLHttpRequest.prototype.open;
  12. var send = XMLHttpRequest.prototype.send;
  13. XMLHttpRequest.prototype.open = function () {
  14. var url = arguments[1];
  15. var method = arguments[0];
  16. if (method.toUpperCase() === 'GET' && url.indexOf('mtop.damai.cn/h5/mtop.alibaba.detail.subpage.getdetail') != -1) {
  17. this._url = url; //保存请求的 URL
  18. console.log('获取到了GET request');
  19. }
  20. open.apply(this, arguments);
  21. };
  22.  
  23. XMLHttpRequest.prototype.send = function () {
  24. this.addEventListener('readystatechange', function () {
  25. if (this.readyState === 4 && this.status === 200 && this._url && this._url.indexOf('mtop.damai.cn/h5/mtop.alibaba.detail.subpage.getdetail') != -1) {
  26. var responseText = JSON.parse(this.responseText);
  27. var result = JSON.parse(responseText.data.result);
  28. var skuList = result.perform.skuList;
  29. // 解析响应内容,获取相关信息
  30. console.log('获取到可选择的场次详情:', skuList);
  31. const skuIds = [];
  32. const itemIds = [];
  33. const priceNames = [];
  34. for (var k = 0; k < skuList.length; k++) {
  35. skuIds.push(skuList[k].skuId);
  36. itemIds.push(skuList[k].itemId);
  37. priceNames.push(skuList[k].priceName);
  38. }
  39. sessionStorage.setItem('skuIds', skuIds);
  40. sessionStorage.setItem('itemIds', itemIds);
  41.  
  42. let priceNameStr = "";
  43. for (let i = 0; i < priceNames.length; i++) {
  44. priceNameStr += i + " : " + priceNames[i] + "\n";
  45. }
  46. alert("选择票价对应的序号输入: \n\n" + "当前选择场次:" + result.perform.performName + "\n\n" + priceNameStr);
  47. }
  48. });
  49. send.apply(this, arguments);
  50. };
  51. }
  52.  
  53.  
  54. function submit_phone_order() {
  55. console.log("提交订单中...");
  56. $("div[view-name='MColorFrameLayout']").attr("id", "myOrderSubmit");
  57. if ($("#myOrderSubmit")[0] == null) {
  58. sessionStorage.setItem("isStopped", "stop");
  59. return;
  60. }
  61. var submitBtn = $("#myOrderSubmit")[0].nextSibling;
  62. var myEvent = new Event('dx_tap');
  63. submitBtn.dispatchEvent(myEvent);
  64. setTimeout(check_phone_alert, 200);
  65. sessionStorage.setItem("isStopped", "start");
  66. }
  67.