// ==UserScript== // @name 探索发现节目标题完全显示 // @namespace http://tampermonkey.net/ // @version 1.5 // @description 探索发现网页文字显示不全,不能直观看到节目标题。用脚本改一下,让其完全显示。 // @author barnett2010 // @match http://tv.cctv.com/* // @match https://tv.cctv.com/* // @grant GM_addStyle // @license MIT // @downloadURL https://update.greasyfork.cloud/scripts/493856/%E6%8E%A2%E7%B4%A2%E5%8F%91%E7%8E%B0%E8%8A%82%E7%9B%AE%E6%A0%87%E9%A2%98%E5%AE%8C%E5%85%A8%E6%98%BE%E7%A4%BA.user.js // @updateURL https://update.greasyfork.cloud/scripts/493856/%E6%8E%A2%E7%B4%A2%E5%8F%91%E7%8E%B0%E8%8A%82%E7%9B%AE%E6%A0%87%E9%A2%98%E5%AE%8C%E5%85%A8%E6%98%BE%E7%A4%BA.meta.js // ==/UserScript== (function() { 'use strict'; // CSS规则以允许文本完整显示并调整容器大小 const style = ` .text p.info a.full-display { white-space: normal !important; text-overflow: unset !important; overflow: visible !important; display: inline-block !important; width: auto !important; /* 允许宽度自适应 */ height: auto !important; /* 允许高度自适应 */ word-wrap: break-word; /* 允许长单词换行 */ } .text p.info { overflow: visible !important; /* 确保父容器不会隐藏子元素溢出的内容 */ } `; // 添加CSS规则 GM_addStyle(style); // 定义一个函数来替换标题中的省略号并添加CSS类 function replaceTitleWithFullTitle() { // 获取所有的标签 var links = document.querySelectorAll('.text p.info a'); // 遍历所有的标签 links.forEach(function(link) { // 检查标签的textContent中是否包含省略号 if (link.textContent.includes('…')) { // 获取完整的title属性值 var fullTitle = link.getAttribute('title'); // 替换textContent中的省略号部分为完整的title link.textContent = fullTitle; // 添加一个类来覆盖默认的样式 link.classList.add('full-display'); } }); } // 监听DOM变化,实时监控标签的变化 var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.type === 'childList' || mutation.type === 'attributes') { replaceTitleWithFullTitle(); } }); }); // 配置observer观察哪些变化 var config = { childList: true, subtree: true, attributes: true }; // 观察整个文档 observer.observe(document.body, config); // 页面加载完成后立即执行一次 window.addEventListener('load', replaceTitleWithFullTitle); })();