您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
复制贴吧的贴子标题与链接
// ==UserScript== // @name Copy Tieba Link // @version 1.1 // @description 复制贴吧的贴子标题与链接 // @match *://tieba.baidu.com/* // @include *://tieba.baidu.com/* // @author 864907600cc // @icon https://secure.gravatar.com/avatar/147834caf9ccb0a66b2505c753747867 // @run-at document-start // @grant GM_setClipboard // @grant GM_addStyle // @namespace http://ext.ccloli.com // ==/UserScript== var setting = { title: true, // 是否复制标题,默认为 true author: false, // 是否复制作者(复制楼中楼时则为楼中楼作者),默认为 false with_at: true, // 若复制作者,则是否需要添加 @,默认为 true link: true, // 是否复制链接,默认为 true split: "\n", // 分隔符,默认为换行符 \n tips: true, // 是否显示提示信息,默认为 true tips_time: 5 // 提示显示时间,默认为 5(秒) }; var linkAnchor = document.createElement('a'); linkAnchor.className = 'tieba-link-anchor'; linkAnchor.textContent = '[复制链接]'; var linkPath = 'http://tieba.baidu.com/p/'; function copyLink(){ var textGroup = []; var text; var parent = this.parentElement; if (this.dataset.linkText) text = this.dataset.linkText; else { switch (this.dataset.anchorType) { case '0': // 贴子内页获取贴子链接 if (setting.title) textGroup.push(unsafeWindow.PageData.thread.title); if (setting.author) textGroup.push((setting.with_at ? '@' : '') + unsafeWindow.PageData.thread.author + ' '); if (setting.link) textGroup.push(linkPath + unsafeWindow.PageData.thread.thread_id); break; case '1': // 贴吧首页获取贴子链接 if (setting.title) textGroup.push(parent.getElementsByClassName('j_th_tit')[0].getAttribute('title')); if (setting.author) textGroup.push((setting.with_at ? '@' : '') + parent.nextElementSibling.getElementsByClassName('j_user_card')[0].textContent + ' '); if (setting.link) textGroup.push(parent.getElementsByClassName('j_th_tit')[0].href); break; case '2': // 贴子内页获取楼层链接 var floorData = JSON.parse(parent.parentElement.parentElement.parentElement.dataset.field); if (setting.title) textGroup.push(unsafeWindow.PageData.thread.title + ' #' + floorData.content.post_no); if (setting.author) textGroup.push((setting.with_at ? '@' : '') + floorData.author.user_name + ' '); if (setting.link) textGroup.push(linkPath + unsafeWindow.PageData.thread.thread_id + '?pid=' + floorData.content.post_id + '#' + floorData.content.post_id); break; } console.log(textGroup); text = textGroup.join(setting.split); this.setAttribute('data-link-text', text); } GM_setClipboard(text); if (setting.tips) showTips('以下内容已复制到剪贴板:\n\n' + text); } function showTips(text) { var text = text.replace(/</g, '<').replace(/>/g, '>').replace(/\n/g, '<br>'); var node = document.createElement('div'); node.className = 'tieba-link-tips'; node.innerHTML = text; document.body.appendChild(node); setTimeout(function(){ document.body.removeChild(node); }, setting.tips_time * 1000); } function catchLinkTarget(event) { if (event.animationName !== 'tiebaLinkTarget') return; var target = event.target; var classList = target.classList; var curAnchor = linkAnchor.cloneNode(true); curAnchor.addEventListener('click', copyLink); if (classList.contains('threadlist_title')) { curAnchor.setAttribute('data-anchor-type', '1'); target.insertBefore(curAnchor, target.getElementsByClassName('j_th_tit')[0]); } else if (classList.contains('core_title')) { curAnchor.setAttribute('data-anchor-type', '0'); target.appendChild(curAnchor); } else if (classList.contains('core_reply_tail')) { curAnchor.setAttribute('data-anchor-type', '2'); target.appendChild(curAnchor); } } // 使用 animation 事件,方便处理贴吧 ajax 加载数据 document.addEventListener('animationstart', catchLinkTarget, false); document.addEventListener('MSAnimationStart', catchLinkTarget, false); document.addEventListener('webkitAnimationStart', catchLinkTarget, false); GM_addStyle(` @-webkit-keyframes tiebaLinkTarget {} @-moz-keyframes tiebaLinkTarget {} @keyframes tiebaLinkTarget {} @-webkit-keyframes tiebaLinkTips { from { opacity: 0; bottom: -75px; } 20% { opacity: 1; bottom: 10px; } 80% { opacity: 1; bottom: 10px; } to { opacity: 0; bottom: -75px; } } @-moz-keyframes tiebaLinkTips { from { opacity: 0; bottom: -75px; } 20% { opacity: 1; bottom: 10px; } 80% { opacity: 1; bottom: 10px; } to { opacity: 0; bottom: -75px; } } @keyframes tiebaLinkTips { from { opacity: 0; bottom: -75px; } 20% { opacity: 1; bottom: 10px; } 80% { opacity: 1; bottom: 10px; } to { opacity: 0; bottom: -75px; } } .tieba-link-anchor { display: none; color: #319630 !important; cursor: pointer; float: right; } .j_thread_list:hover .tieba-link-anchor, .l_post:hover .tieba-link-anchor, .core_title:hover .tieba-link-anchor, .tieba-link-anchor:hover { display: inline-block; } .threadlist_title, .core_reply_tail, .core_title { -webkit-animation: tiebaLinkTarget; -moz-animation: tiebaLinkTarget; animation: tiebaLinkTarget; } .core_title:hover .core_title_txt { width: 420px !important; } .tieba-link-tips { background: #ff7f3e; font-size: 14px; padding: 10px; border-radius: 3s; position: fixed; right: 10px; color: #ffffff; z-index: 99999999; pointer-events: none; -webkit-animation: tiebaLinkTips ` + setting.tips_time + `s; -moz-animation: tiebaLinkTips ` + setting.tips_time + `s; animation: tiebaLinkTips ` + setting.tips_time + `s; } `);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址