您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds the ability to use a specific theme for IP.Chat separate from the forum theme. The theme can be changed while in IP.Chat via a separate menu next to the default theme changer.
// ==UserScript== // @name IP.Chat-Specific Theme // @namespace Makaze // @include * // @version 1.1.3 // @description Adds the ability to use a specific theme for IP.Chat separate from the forum theme. The theme can be changed while in IP.Chat via a separate menu next to the default theme changer. // ==/UserScript== function updateSkin(skinID) { var logo, i = 0; for (i = 0; i < document.getElementsByTagName('link').length; i++) { if (document.getElementsByTagName('link')[i].getAttribute('rel') === 'stylesheet' && document.getElementsByTagName('link')[i].href.match(/css_\d+/gi)) { document.getElementsByTagName('link')[i].href = document.getElementsByTagName('link')[i].href.replace(/css_\d+/gi, 'css_' + skinID); } } switch (skinID) { case 29: logo = 'http://serenesforest.net/forums/public/style_images/29_sflogoblue.png'; break; case 27: logo = 'http://serenesforest.net/forums/public/style_images/27_serenes_forest_forums_banner.jpg'; break; case 28: logo = 'http://serenesforest.net/forums/public/style_images/28_sflogopurp.png'; } document.getElementById('logo').getElementsByTagName('img')[0].src = logo; } function insertAfter(referenceNode, newNode) { referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling); } function fade(elem, type, speed) { var defaultOpacity, currentDisplay = elem.style.display || window.getComputedStyle(elem).display; elem.style.opacity = ''; defaultOpacity = window.getComputedStyle(elem).opacity; elem.style.opacity = 0; // Default values: switch (arguments.length) { case 1: type = 'toggle'; case 2: speed = 300; break; } switch (type) { case 'in': elem.style.display = ''; setTimeout(function() { elem.style.transition = 'all ' + speed + 'ms ease-in-out'; elem.style.opacity = defaultOpacity; setTimeout(function() { elem.style.transition = ''; elem.style.opacity = ''; }, speed + 10); }, 1); break; case 'out': elem.style.transition = ''; elem.style.opacity = defaultOpacity; elem.style.transition = 'all ' + speed + 'ms ease-in-out'; elem.style.opacity = 0; setTimeout(function() { elem.style.display = 'none'; elem.style.transition = ''; elem.style.opacity = ''; }, speed + 10); break; case 'toggle': default: if (currentDisplay === 'none') { elem.style.display = ''; setTimeout(function() { elem.style.transition = 'all ' + speed + 'ms ease-in-out'; elem.style.opacity = defaultOpacity; setTimeout(function() { elem.style.transition = ''; elem.style.opacity = ''; }, speed + 10); }, 1); } else { elem.style.transition = ''; elem.style.opacity = defaultOpacity; elem.style.transition = 'all ' + speed + 'ms ease-in-out'; elem.style.opacity = 0; setTimeout(function() { elem.style.display = 'none'; elem.style.transition = ''; elem.style.opacity = ''; }, speed + 10); } } } function clonedThemeChanger() { var buttonToClone = document.getElementById('new_skin'), menuToClone = document.getElementById('new_skin_menucontent'), clonedButton = buttonToClone.clone(true), clonedMenu = menuToClone.clone(true), container = document.createElement('li'), opts, i = 0; clonedButton.id = 'new_ipc_skin'; clonedButton.innerHTML = 'Change IP.Chat Theme'; clonedButton.href = 'javascript:void(0)'; clonedMenu.id = 'new_ipc_skin_menucontent'; container.id = 'ipc_themechanger'; insertAfter(buttonToClone.parentNode, container); document.getElementById('ipc_themechanger').appendChild(clonedButton); document.getElementById('ipc_themechanger').appendChild(clonedMenu); document.getElementById('rss_feed').onload = function() { buttonToClone.click(); setTimeout(function() { buttonToClone.click(); }, 300); }; document.getElementById('new_ipc_skin').onclick = function() { var menu = document.getElementById('new_ipc_skin_menucontent'), widthOff = document.getElementById('new_skin').offsetWidth, top = document.getElementById('new_skin_menucontent').style.top.split('px')[0], left = document.getElementById('new_skin_menucontent').style.left.split('px')[0]; if (menu.style.display === 'none') { this.className = 'menu_active'; fade(menu, 'in'); menu.style.top = parseFloat(top) + 'px'; menu.style.left = parseFloat(left) + widthOff + 6 + 'px'; } else { this.className = ''; fade(menu, 'out'); } }; var ipcThemeChangerHandler = function() { var nameToLoad = this.textContent, idToLoad = parseFloat(this.getAttribute('data-skinid')), menu = this.parentNode.parentNode, newOpt, oldOpts; menu.getElementsByClassName('selected')[0].className = ''; this.parentNode.className = 'selected'; updateSkin(idToLoad); if (localStorage.getItem('MakazeScriptOptions')) { oldOpts = JSON.parse(localStorage.getItem('MakazeScriptOptions')); oldOpts.ipc_theme_name = nameToLoad; oldOpts.ipc_theme_id = idToLoad; localStorage.setItem('MakazeScriptOptions', JSON.stringify(oldOpts)); } else { newOpt = {'ipc_theme_name': nameToLoad, 'ipc_theme_id': idToLoad}; localStorage.setItem('MakazeScriptOptions', JSON.stringify(newOpt)); } menu.style.opacity = 0; setTimeout(function() { menu.style.display = 'none'; }, 350); document.getElementById('new_ipc_skin').className = ''; }; for (i = 0; i < document.getElementById('new_ipc_skin_menucontent').getElementsByTagName('a').length; i++) { var menu = document.getElementById('new_ipc_skin_menucontent'); document.getElementById('new_ipc_skin_menucontent').getElementsByTagName('a')[i].href = 'javascript:void(0)'; if (localStorage.getItem('MakazeScriptOptions') && JSON.parse(localStorage.getItem('MakazeScriptOptions')).hasOwnProperty('ipc_theme_id')) { opts = JSON.parse(localStorage.getItem('MakazeScriptOptions')); if (opts.ipc_theme_id === document.getElementById('new_ipc_skin_menucontent').getElementsByTagName('a')[i].getAttribute('data-skinid')) { menu.getElementsByClassName('selected')[0].className = ''; document.getElementById('new_ipc_skin_menucontent').getElementsByTagName('a')[i].parentNode.className = 'selected'; } } document.getElementById('new_ipc_skin_menucontent').getElementsByTagName('a')[i].onclick = ipcThemeChangerHandler; } } if (document.body.id == 'ipboard_body' && document.getElementById('chat-form') != null) { var opts, detectedTheme, forumTheme = document.getElementById('new_skin_menucontent').getElementsByClassName('selected')[0].getAttribute('data-skinid'), clonedScript; if (localStorage.getItem('MakazeScriptOptions') && JSON.parse(localStorage.getItem('MakazeScriptOptions')).hasOwnProperty('ipc_theme_id')) { opts = JSON.parse(localStorage.getItem('MakazeScriptOptions')); detectedTheme = opts.ipc_theme_id; if (detectedTheme !== forumTheme) { updateSkin(detectedTheme); } } clonedScript = document.createElement('script'); clonedScript.setAttribute('type', 'text/javascript'); clonedScript.innerHTML = updateSkin.toString() + insertAfter.toString() + fade.toString() + clonedThemeChanger.toString() + 'clonedThemeChanger();'; document.body.appendChild(clonedScript); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址