Greasy Fork is available in English.

Chat GPT 粘贴格式问题解决

在复制时清理特定的HTML样式并支持多种粘贴目标

질문, 리뷰하거나, 이 스크립트를 신고하세요.
  1. // ==UserScript==
  2. // @name Chat GPT 粘贴格式问题解决
  3. // @namespace http://tampermonkey.org/
  4. // @version 0.2
  5. // @description 在复制时清理特定的HTML样式并支持多种粘贴目标
  6. // @author smartblack
  7. // @match https://chatgpt.com/*
  8. // @grant none
  9. // @license MIT
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. document.addEventListener('copy', function(e) {
  16. let selection = window.getSelection();
  17. if (!selection.rangeCount) return;
  18.  
  19. let container = document.createElement('div');
  20. container.style.position = 'fixed';
  21. container.style.left = '-99999px';
  22. container.style.top = '0';
  23. container.style.opacity = '0';
  24. document.body.appendChild(container);
  25.  
  26. container.appendChild(selection.getRangeAt(0).cloneContents());
  27.  
  28. // 清理HTML元素的样式
  29. cleanStyles(container);
  30.  
  31. try {
  32. // 为Word等富文本编辑器准备HTML格式
  33. e.clipboardData.setData('text/html', container.innerHTML);
  34. // 为文本编辑器和网页表单准备纯文本格式
  35. e.clipboardData.setData('text/plain', container.textContent);
  36. e.preventDefault(); // 防止默认的复制行为
  37. } catch (err) {
  38. console.error('Failed to set clipboard data:', err);
  39. }
  40.  
  41. document.body.removeChild(container);
  42. });
  43.  
  44. function cleanStyles(element) {
  45. element.querySelectorAll('*').forEach(el => {
  46. el.removeAttribute('style'); // 移除所有样式
  47. });
  48. }
  49. })();