TRAMS·诠识外语教学社区

 TRAMS·诠识外语 教学社区

0

主题

17

帖子

0

积分

游客

积分
0
21#
发表于 2013-5-21 21:48:27 |只看该作者
回复

使用道具 举报

0

主题

1

帖子

0

积分

游客

积分
0
22#
发表于 2013-5-22 11:26:59 |只看该作者
回复

使用道具 举报

0

主题

1

帖子

0

积分

游客

积分
0
23#
发表于 2013-5-22 12:06:44 |只看该作者
回复

使用道具 举报

0

主题

1

帖子

0

积分

游客

积分
0
QQ
24#
发表于 2013-5-22 12:36:16 |只看该作者
回复

使用道具 举报

0

主题

2

帖子

0

积分

游客

积分
0
25#
发表于 2013-5-22 22:36:09 |只看该作者
回复

使用道具 举报

0

主题

1

帖子

0

积分

游客

积分
0
26#
发表于 2013-5-23 11:33:16 |只看该作者
回复

使用道具 举报

0

主题

4

帖子

0

积分

游客

积分
0
27#
发表于 2013-5-23 12:14:51 |只看该作者

(function main(Global) {        var CONSTANTS = {            PLAYER_DOM:    &#39;object[data],embed[src],iframe[src]&#39;,            PLAYERS: [                {                    find: /^http:\/\/static\.youku\.com\/.*?q?(player|loader)(_[^.]+)?\.swf/,                    replace: &#39;http://player.opengg.me/loader.swf&#39;                },                {                    find: /^http:\/\/js\.tudouui\.com\/.*?\/TudouVideoPlayer_Homer_[^.]*?.swf/,                    replace: &#39;http://player.opengg.me/TudouVideoPlayer_Homer_238.swf&#39;                },                {                    find: /^http:\/\/player\.youku\.com\/player\.php\//,                    replace: &#39;http://player.opengg.me/player.php/&#39;                },                {                    find: /^http:\/\/dp\.tudou\.com\/nplayer[^.]*?\.swf|http:\/\/js\.tudouui\.com\/doupao\/nplayer[^.]*?\.swf/,                    replace: &#39;http://player.opengg.me/nplayer.swf&#39;                },                {                    find: /^http:\/\/www.tudou.com\/(([a-z]|programs)\/.*)/,                    replace: &#39;http://player.opengg.me/td.php/$1&#39;                }            ],            SHARE_DOM: &#39;#panel_share input,input#copyInput.txt&#39;,            SHARES: [                {                    find: /http:\/\/player\.youku\.com\/player\.php\//,                    replace: &#39;http://player.opengg.me/player.php/&#39;                },                {                    find: /http:\/\/www.tudou.com\/(.*v\.swf)/,                    replace: &#39;http://player.opengg.me/td.php/$1&#39;                }            ],            TIPS_HOLDER: &#39;#miniheader,#gTop&#39;,            TIPS: &#39;<div class="tips_container">OpenGG.Clean.Player \u5DF2\u542F\u7528&emsp;<span class="tips_toggleWide">\u5bbd\u5c4f/\u7a84\u5c4f&emsp;</span><a href="http://opengg.me/781/opengg-clean-player/" style="color:blue" target="_blank">\u53CD\u9988</a>&emsp;<a href="http://opengg.me/donation/" style="color:red" title="\u6211\u8981\u6350\u52A9\u6B64\u9879\u76EE" target="_blank">\u6350\u52A9</a><a class="tips_close" href="#" style="color:red">X</a></div>&#39;,            STYLE: &#39;.playBox_thx #player.player,.playBox_thx #player.player object{min-height:&#39; + Math.max(Global.innerHeight * 0.6, 580) + &#39;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}&#39;,            NODEINSERTED_HACK: &#39;@-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;}&#39;,            TOGGLE_BTN: &#39;.tips_container .tips_toggleWide&#39;        };        var DONE = [];        var UTIL = {            addCss: function (str) {                var style = document.createElement(&#39;style&#39;);                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 = [&#39;data&#39;, &#39;src&#39;];                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===&#39;none&#39;){                                clone.style.display=&#39;block&#39;;                            }                            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 < arr.length; ++i) {                            callback.call(arr, arr);                        }                    }                }            },            isArrayLike: function (obj) {                if (typeof obj !== &#39;object&#39;) {                    return false;                }                var types = [&#39;Array&#39;, &#39;NodeList&#39;, &#39;HTMLCollection&#39;];                var i = 0;                for (i = 0; i < types.length; ++i) {                    if (Object.prototype.toString.call(obj).indexOf(types) !== -1) {                        return true;                    }                }                return false;            }        };        var STORE;        (function(){            var isStorage = true;            if(!Global.localStorage){                isStorage = false;            }else{                try{                    var key = String(Math.random());                    localStorage.setItem(key,&#39;test&#39;);                    if(localStorage.getItem(key)!==&#39;test&#39;){                        throw &#39;not equal&#39;;                    }                    localStorage.removeItem(key);                }catch(e){                    isStorage=false;                }            }            STORE = {                getItem: function(key){                    if(isStorage){                        return localStorage.getItem(key);                    }                },                setItem: function(key, value){                    if(isStorage){                        localStorage.setItem(key, value);                    }                }            };        })();        function init() {            function onDOMNodeInsertedHandler(e) {                var target = e.target;                if (target.nodeType === 1 && /OBJECT|EMBED|IFRAME/ig.test(target.nodeName)) {                    UTIL.procFlash(target);                }            }            function onAnimationStartHandler(e) {                if (e.animationName === &#39;nodeInserted&#39;) {                    var target = e.target;                    if (target.nodeType === 1 && /OBJECT|EMBED|IFRAME/ig.test(target.nodeName)) {                        UTIL.procFlash(target);                    }                }            }            function animationNotSupported(){                var style = document.createElement(&#39;div&#39;).style;                var arr = [&#39;animation&#39;, &#39;MozAnimation&#39;, &#39;webkitAnimation&#39;, &#39;OAnimation&#39;];                for(var i =0;i<arr.length;++i){                    if( arr in style){                        return false;                    }                }                return true;            }            /* animationstart not invoked in background tabs of chrome 21 */            var all = document.querySelectorAll(&#39;OBJECT,EMBED,IFRAME&#39;);            for(var i=0;i<all.length;++i){                UTIL.procFlash(all);            }            UTIL.addCss(CONSTANTS.NODEINSERTED_HACK);            /*Firefox*/            document.body.addEventListener(&#39;animationstart&#39;, onAnimationStartHandler, false);            /*/Firefox*/            /*Chrome*/            document.body.addEventListener(&#39;webkitAnimationEnd&#39;, onAnimationStartHandler, false);            /*/Chrome*/            /*Opera 12+*/            document.body.addEventListener(&#39;oAnimationStart&#39;, onAnimationStartHandler, false);            /*/Opera 12+*/            /*IE, but I never tested this*/            document.body.addEventListener(&#39;msAnimationStart&#39;, onAnimationStartHandler, false);            /*/IE, but I never tested this*/            if (animationNotSupported()) {                /*Old fashion, slower maybe*/                document.body.addEventListener(&#39;DOMNodeInserted&#39;, onDOMNodeInsertedHandler, false);                var matches = document.body.querySelectorAll(CONSTANTS.PLAYER_DOM);                UTIL.forEach(matches, function (elem) {                    UTIL.procFlash(elem);                });            }        }        function tips() {            var holder = document.body.querySelector(CONSTANTS.TIPS_HOLDER);            if (holder) {                var div = document.createElement(&#39;div&#39;);                if (document.defaultView.getComputedStyle(holder, null).getPropertyValue(&#39;position&#39;) !== &#39;relative&#39;) {                    div.style.position = &#39;relative&#39;;                }                div.innerHTML = CONSTANTS.TIPS;                div.querySelector(&#39;.tips_close&#39;).addEventListener(&#39;click&#39;,function(e){                    if(e.preventDefault){                        e.preventDefault();                    }                    div.parentNode.removeChild(div);                    return false;                },false);                holder.appendChild(div);                UTIL.addCss(CONSTANTS.STYLE);            }        }        function share(elem) {            var pairs = CONSTANTS.SHARES;            UTIL.forEach(pairs, function (item) {                elem.value = elem.value.replace(item.find, item.replace);            });        }        function setTHX(opt){            var player = document.querySelector(&#39;object#movie_player&#39;);            var parent = document.body.querySelector(&#39;.playBox&#39;);            var wide = document.body.querySelector(&#39;.playBox_thx&#39;);            if(opt&&player){                try{                    player.setTHX(opt);                }catch(e){}                switch(opt){                    case &#39;on&#39;:                        if (parent && !wide) {                            parent.className += &#39; playBox_thx&#39;;                        }                        break;                    case &#39;off&#39;:                        if (parent && wide) {                            parent.className = &#39;playBox&#39;;                        }                        break;                }            }        }        var CONTROLLER = [            {                host: &#39;.&#39;,                fn: function () {                    init();                }            },            {                host: &#39;youku.com&#39;,                fn: function () {                    var matches = document.body.querySelectorAll(CONSTANTS.SHARE_DOM);                    UTIL.forEach(matches, share);                    tips();                    if(STORE.getItem(&#39;THX&#39;)===&#39;on&#39;){                        setTHX(STORE.getItem(&#39;THX&#39;));                    }                    var toggle = document.body.querySelector(CONSTANTS.TOGGLE_BTN);                    toggle.style.display=&#39;inline&#39;;                    toggle.addEventListener(&#39;click&#39;,function(){                        STORE.setItem(&#39;THX&#39;,STORE.getItem(&#39;THX&#39;)===&#39;on&#39;?&#39;off&#39;:&#39;on&#39;);                        setTHX(STORE.getItem(&#39;THX&#39;));                    },false);                }            },            {                host: &#39;tudou.com&#39;,                fn: function () {                    function hack(){                        var TUI_copyToClip = Global.TUI&&Global.TUI.copyToClip;                        if(TUI_copyToClip&&TUI_copyToClip.toString().indexOf(&#39;arguments&#39;)===-1){                            Global.TUI.copyToClip = function () {                                var matches = document.body.querySelectorAll(CONSTANTS.SHARE_DOM);                                UTIL.forEach(matches, share);                                TUI_copyToClip.apply(Global.TUI, arguments);                            };                            clearInterval(inter);                        }                    }                    tips();                    var tudouPlayer = document.body.querySelector(&#39;#playerObject&#39;);                    var normalDom = document.querySelector(&#39;.normal&#39;);                    if (tudouPlayer && normalDom) {                        normalDom.className = normalDom.className.replace(&#39;normal&#39;,&#39;widescreen&#39;);                    }                    var inter = setInterval(hack,100);                    try{                        Global.playerEx.event.fire(&#39;scale&#39;,[true]);                    }catch(e){}                }            }        ];        var host = location.host;        function PROC(item) {            if (host.indexOf(item.host) !== -1) {                item.fn();                return;            }        }        UTIL.forEach(CONTROLLER, PROC);    })(window);
回复

使用道具 举报

0

主题

4

帖子

0

积分

游客

积分
0
28#
发表于 2013-5-23 12:15:36 |只看该作者
回复

使用道具 举报

0

主题

1

帖子

0

积分

游客

积分
0
29#
发表于 2013-5-23 18:34:48 |只看该作者
回复

使用道具 举报

0

主题

2

帖子

0

积分

游客

积分
0
30#
发表于 2013-5-23 20:49:24 |只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|TRAMS·诠识外语

GMT+8, 2024-12-26 13:21 , Processed in 0.066775 second(s), 20 queries , Gzip On.

Powered by Tramsmart V6.8

© 2013-2018

返回顶部