(\ _ /)
( ・-・)
/っ
就刚才的工作使用场景,觉得还挺实用。![]()
↑ 简而言之我想把整个列表投喂给 AI 让帮起名,虽然栏目都是文本但不好拖拽点中即跳转、滚动截屏也能但稍微麻烦点而且 OCR 处理奇怪颜文字那些也容易有误差。
所以点一下这个书签,会进入鼠标选择状态:
光标置于不同 DOM 会实时显示范围,所见范围就是整个 DOM(包括不可见的 Scrollbar 下面)的文本捕获。
左键点击后就可以复制到剪贴板:
(\ _ /)
( ・-・)
/っ
就是这样。源码 ↓
javascript半角冒号(function(){let removeDuplicates=true;let selectedElement=null;let overlay=null;function createOverlay(){overlay=document.createElement('div');overlay.style.cssText='position:fixed;top:0;left:0;width:100%;height:100%;z-index:999999;pointer-events:none;';document.body.appendChild(overlay)}function highlightElement(element){if(!element)return;const rect=element.getBoundingClientRect();overlay.style.cssText+=`border:2px solid red;background:rgba(255,0,0,0.1);top:${rect.top+window.scrollY}px;left:${rect.left+window.scrollX}px;width:${rect.width}px;height:${rect.height}px;position:absolute;pointer-events:none;z-index:999999;`}function getTextNodes(element){let textNodes=removeDuplicates?new Set():[];let walker=document.createTreeWalker(element,NodeFilter.SHOW_TEXT,null,false);let node;while(node=walker.nextNode()){if(node.textContent.trim()){if(removeDuplicates){textNodes.add(node.textContent.trim())}else{textNodes.push(node.textContent.trim())}}}return removeDuplicates?Array.from(textNodes):textNodes}function copyToClipboard(text){const textarea=document.createElement(%27textarea%27);textarea.value=text;document.body.appendChild(textarea);textarea.select();document.execCommand(%27copy%27);document.body.removeChild(textarea)}function handleClick(e){e.preventDefault();e.stopPropagation();selectedElement=e.target;const textNodes=getTextNodes(selectedElement);const content=textNodes.join(%27\n%27);copyToClipboard(content);if(overlay)overlay.remove();document.removeEventListener(%27click%27,handleClick,true);document.removeEventListener(%27mouseover%27,handleMouseOver,true);alert(%27Text content copied to clipboard!%27)}function handleMouseOver(e){highlightElement(e.target)}createOverlay();document.addEventListener(%27click%27,handleClick,true);document.addEventListener(%27mouseover%27,handleMouseOver,true);})();
↑ 手动把半角冒号改回 : 因为直接写发帖会 403。
存 Chrome 书签,需要用的时候点一下就行,书签名随意 ![]()
函数开头的
removeDuplicates是去重开关,因为 HTML 列表结构经常有不可见的那些重复声明。不需要去重的话把这个参数值改为 false 即可。




