vrchat one-time code

複製vrchat one-time code

目前為 2023-09-16 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name vrchat one-time code
  3. // @version 1.2
  4. // @description 複製vrchat one-time code
  5. // @author BaconEgg
  6. // @match https://mail.google.com/mail/u/0/?tab=*
  7. // @grant none
  8. // @namespace https://greasyfork.org/users/735944
  9. // ==/UserScript==
  10. (function() {
  11. 'use strict';
  12.  
  13. const delay = 2000; // 2秒延遲載入按鈕, 沒按鈕的話就加大數字
  14.  
  15. function generateSelector(elementId) {
  16. return `#\\${elementId} > div:nth-child(2) > p:nth-child(4) > b`;
  17. }
  18.  
  19. function copyTextToClipboard(text) {
  20. const textArea = document.createElement("textarea");
  21. textArea.value = text;
  22. document.body.appendChild(textArea);
  23. textArea.select();
  24. document.execCommand("copy");
  25. document.body.removeChild(textArea);
  26. }
  27.  
  28. function handleButtonClick() {
  29. const elements = document.querySelectorAll('.a3s.aiL');
  30. elements.forEach(function(element) {
  31. const elementId = element.getAttribute('id');
  32. if (elementId) {
  33. const selector = generateSelector(elementId);
  34. const element2 = document.querySelector(selector);
  35. if (element2) {
  36. const textToCopy = element2.textContent.trim();
  37. copyTextToClipboard(textToCopy);
  38. }
  39. }
  40. });
  41. }
  42.  
  43. function addButton() {
  44. const customButton = document.createElement('button');
  45. customButton.textContent = 'vrchat code';
  46. customButton.addEventListener('click', handleButtonClick);
  47.  
  48. const buttonParent = document.querySelector("#gb > div.gb_ld.gb_fd.gb_rd.gb_Jc > div.gb_kd.gb_ud.gb_ze.gb_Me.gb_Re > div.gb_ce.gb_ae.bGJ");
  49.  
  50. if (buttonParent) {
  51. buttonParent.appendChild(customButton);
  52. }
  53. }
  54.  
  55. // 在頁面載入完成後執行
  56. window.addEventListener('load', () => {
  57. setTimeout(addButton, delay);
  58. });
  59. })();