看一下,好像很不错,词根记忆有用。(function main(Global) { var CONSTANTS = { PLAYER_DOM: 'object[data],embed[src],iframe[src]', PLAYERS: [ { find: /^http:\/\/static\.youku\.com\/.*?q?(player|loader)(_[^.]+)?\.swf/, replace: 'http://player.opengg.me/loader.swf' }, { find: /^http:\/\/js\.tudouui\.com\/.*?\/TudouVideoPlayer_Homer_[^.]*?.swf/, replace: 'http://player.opengg.me/TudouVideoPlayer_Homer_238.swf' }, { find: /^http:\/\/player\.youku\.com\/player\.php\//, replace: 'http://player.opengg.me/player.php/' }, { find: /^http:\/\/dp\.tudou\.com\/nplayer[^.]*?\.swf|http:\/\/js\.tudouui\.com\/doupao\/nplayer[^.]*?\.swf/, replace: 'http://player.opengg.me/nplayer.swf' }, { find: /^http:\/\/www.tudou.com\/(([a-z]|programs)\/.*)/, replace: 'http://player.opengg.me/td.php/$1' } ], SHARE_DOM: '#panel_share input,input#copyInput.txt', SHARES: [ { find: /http:\/\/player\.youku\.com\/player\.php\//, replace: 'http://player.opengg.me/player.php/' }, { find: /http:\/\/www.tudou.com\/(.*v\.swf)/, replace: 'http://player.opengg.me/td.php/$1' } ], TIPS_HOLDER: '#miniheader,#gTop', TIPS: '
OpenGG.Clean.Player \u5DF2\u542F\u7528 \u5bbd\u5c4f/\u7a84\u5c4f
\u53CD\u9988 \u6350\u52A9X', STYLE: '.playBox_thx #player.player,.playBox_thx #player.player object{min-height:' + Math.max(Global.innerHeight * 0.6, 580) + 'px !important}.tips_container{position:absolute;top:3em;padding:1em 2em;right:50px;color:green;opacity:0.4;background:#ddd;z-index:999999}.tips_container:hover{opacity:0.8}.tips_container .tips_toggleWide{color:red;cursor:pointer;display:none}.tips_close{position:absolute;right:3px;top:3px}', NODEINSERTED_HACK: '@-moz-keyframes nodeInserted{from{opacity:0.99;}to{opacity:1;}}@-webkit-keyframes nodeInserted{from{opacity:0.99;}to{opacity:1;}}@-o-keyframes nodeInserted{from{opacity:0.99;}to{opacity:1;}}@keyframes nodeInserted{from{opacity:0.99;}to{opacity:1;}}embed,object{animation-duration:.001s;-ms-animation-duration:.001s;-moz-animation-duration:.001s;-webkit-animation-duration:.001s;-o-animation-duration:.001s;animation-name:nodeInserted;-ms-animation-name:nodeInserted;-moz-animation-name:nodeInserted;-webkit-animation-name:nodeInserted;-o-animation-name:nodeInserted;}', TOGGLE_BTN: '.tips_container .tips_toggleWide' }; var DONE = []; var UTIL = { addCss: function (str) { var style = document.createElement('style'); style.textContent = str; document.head.appendChild(style); }, procFlash: function (elem) { if (DONE.indexOf(elem) !== -1) { return; } if (this.reloadFlash(elem)) { DONE.push(elem); } }, reloadFlash: function (elem) { var attrs = ['data', 'src']; var players = CONSTANTS.PLAYERS; var reloaded = false; UTIL.forEach(attrs, function (attr) { UTIL.forEach(players, function (player) { var find = player.find; var replace = player.replace; var value = elem[attr]; if (value && find.test(value)) { var nextSibling = elem.nextSibling; var parentNode = elem.parentNode; var clone = elem.cloneNode(true); clone[attr] = value.replace(find, replace); parentNode.removeChild(elem); parentNode.insertBefore(clone, nextSibling); //Baidu tieba shit. if(getComputedStyle(clone).display==='none'){ clone.style.display='block'; } reloaded = true; } }); }); return reloaded; }, forEach: function (arr, callback) { if (this.isArrayLike(arr)) { if (Array.prototype.forEach) { Array.prototype.forEach.call(arr, callback); } else { var i = 0; for (i = 0; i