您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add Save button to Metrolyrics site
- // ==UserScript==
- // @name MetroSave
- // @namespace greasyfork.org/Zart
- // @version 2.2
- // @date 2017-03-16
- // @description Add Save button to Metrolyrics site
- // @author Zart
- // @icon http://www.metrolyrics.com/favicon.ico
- // @include http://www.metrolyrics.com/*
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- /* //Fix Mozilla bug with innerText
- if (/Firefox/.test(navigator.userAgent)){
- var it = function(){var r=document.createRange();r.selectNode(this);var sel=window.getSelection();sel.addRange(r);var s=sel.toString();sel.removeAllRanges();return s;};
- Object.defineProperty(HTMLElement.prototype, 'innerText', {get: it});}
- var lyr = document.getElementsByClassName('verse');
- if (!lyr.length) return false;
- for (var i=0,s=[]; i<lyr.length; s.push(lyr[i++].innerText));
- var cop = document.getElementsByClassName('writers');
- for (i=0; i<cop.length-1; s.push(cop[i++].innerText));
- var src = document.getElementsByClassName('lyric-source')[0]; //mobile
- if(src) {src.lastChild.remove();src.lastChild.remove();s.push(src.innerText);}
- s = s.join('\n\n').replace(/\n/gm,'\r\n');*/
- var r=document.querySelectorAll('.verse,.writers:not(:last-child),.lyric-source>*:not(:nth-last-child(-n+2))');
- if (!r.length) return;
- for (var i=0,s=[]; i<r.length; i++){
- for (var j=0; j<r[i].childNodes.length; s.push(r[i].childNodes[j++].textContent));
- if(r[i].tagName=='P') s.push('\n\n'); else s.push('\n');}
- s = s.join('\n').replace(/\n{2,3}/g,'\n').replace(/\n/gm,'\r\n');
- var ss = document.styleSheets[0];
- ss.insertRule('.lyrics-top .social-bar a{width:calc((100% - 10px)/4)!important}',0);
- ss.insertRule('.container-8 .social-bar a{width: 20%!important}',0); //mobile
- var btn = document.getElementsByClassName('social-link');
- var a = btn[0].parentNode.insertBefore(document.createElement('A'), btn[0]);
- a.target = 'void';
- a.download = ml.lyricName + '.txt';
- var unsafe = /[^\0-\x7f\xa9]/, BOM = '\ufeff';
- if (unsafe.test(s))
- a.href = encodeURI('data:text/plain;utf8,' + BOM + s);
- else
- a.href = 'data:text/plain;quoted-printable,' + escape(s);
- a.style.cssText = 'background-color: green; background-position: center; background-repeat: no-repeat;';
- a.style.backgroundImage='url("data:image/gif;base64,R0lGODlhEAARAIABAP///wAAACH5BAkKAAEALAAAAAAQABEAAAIjjA2px6jfzoMxzFVvqlZzDXxeNjrg1Z1YejYqiYoUx9LMFhUAOw==")';
- a.style.marginRight = window.getComputedStyle(btn[0]).marginRight; //mobile+desktop
- })();