code.html 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div>code:</div>
  11. <div id="code"></div>
  12. <button style="margin-top: 15px;">
  13. <a
  14. href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx67ca1b8c9816ef28&redirect_uri=https://jpcj-h51.zzxcx.net/code.html&response_type=code&scope=snsapi_userinfo&state=LOGIN#wechat_redirect">
  15. 重新获取code</a>
  16. </button>
  17. <script>
  18. function getAllUrlParams(urls) {
  19. var url = urls || location.href
  20. // 用JS拿到URL,如果函数接收了URL,那就用函数的参数。如果没传参,就使用当前页面的URL
  21. var queryString = url ? url.split('?')[1] : window.location.search.slice(1);
  22. // 用来存储我们所有的参数
  23. var obj = {};
  24. // 如果没有传参,返回一个空对象
  25. if (!queryString) {
  26. return obj;
  27. }
  28. // stuff after # is not part of query string, so get rid of it
  29. queryString = queryString.split('#')[0];
  30. // 将参数分成数组
  31. var arr = queryString.split('&');
  32. for (var i = 0; i < arr.length; i++) {
  33. // 分离成key:value的形式
  34. var a = arr[i].split('=');
  35. // 将undefined标记为true
  36. var paramName = a[0];
  37. var paramValue = typeof (a[1]) === 'undefined' ? true : a[1];
  38. if (paramName.match(/\[(\d+)?\]$/)) {
  39. // 如果paramName不存在,则创建key
  40. var key = paramName.replace(/\[(\d+)?\]/, '');
  41. if (!obj[key]) obj[key] = [];
  42. // 如果是索引数组 e.g. colors[2]
  43. if (paramName.match(/\[\d+\]$/)) {
  44. // 获取索引值并在对应的位置添加值
  45. var index = /\[(\d+)\]/.exec(paramName)[1];
  46. obj[key][index] = paramValue;
  47. } else {
  48. // 如果是其它的类型,也放到数组中
  49. obj[key].push(paramValue);
  50. }
  51. } else {
  52. // 处理字符串类型
  53. if (!obj[paramName]) {
  54. // 如果如果paramName不存在,则创建对象的属性
  55. obj[paramName] = paramValue;
  56. } else if (obj[paramName] && typeof obj[paramName] === 'string') {
  57. // 如果属性存在,并且是个字符串,那么就转换为数组
  58. obj[paramName] = [obj[paramName]];
  59. obj[paramName].push(paramValue);
  60. } else {
  61. // 如果是其它的类型,还是往数组里丢
  62. obj[paramName].push(paramValue);
  63. }
  64. }
  65. }
  66. return obj;
  67. }
  68. function getCode() {
  69. if (getAllUrlParams()["code"]) {
  70. document.getElementById("code").textContent = getAllUrlParams()["code"]
  71. }
  72. }
  73. // console.log(getAllUrlParams()["code"])
  74. //hello
  75. getCode()
  76. </script>
  77. </body>
  78. </html>