// ==UserScript== // @name Steam Video Overlay // @version 0.1-alpha // @description 让 Steam 游戏详情页面的视频悬浮起来~~~ // @author NotaStudio // @match http://store.steampowered.com/app/* // @match https://store.steampowered.com/app/* // @grant none // @namespace https://greasyfork.org/users/8882 // @downloadURL none // ==/UserScript== // GPLv3 License // http://www.gnu.org/licenses/gpl-3.0.html /* * ChangeLog * 20150205 0.1-alpha * 首次发布 */ var fileCode,minUrl,maxUrl,fileUrl; console.log("土豪买买买!!!\n Steam Video Overlay 0.1-alpha\n Created by Nota\n 2015.02.05"); window.collectionToArray = function(collection) { var ary = []; for(var i = 0, len = collection.length; i < len; i++) { ary.push(collection[i]); } return ary; }; // 网上找的一个函数,作者应该是三水清(http://js8.in/) window.getFileUrl = function() { var videoNode = document.getElementsByTagName("object"); var i = collectionToArray(videoNode).pop(); fileCode = i.innerHTML.match(/steam\/apps\/\d*/)[0].slice(11); minUrl = "http://cdn.akamai.steamstatic.com/steam/apps/" + fileCode + "/movie480.webm"; maxUrl = "http://cdn.akamai.steamstatic.com/steam/apps/" + fileCode + "/movie_max.webm"; if (screen.height > 768) { fileUrl = maxUrl; } else { fileUrl = minUrl; } }; window.scrollEvent = function() { if (window.pageYOffset > screen.availHeight) { if (document.getElementById("svoWindow").style.display == "none") { document.getElementById("svoWindow").style.display = "inline"; } } else { if (document.getElementById("svoWindow").style.display == "inline") { document.getElementById("svoWindow").style.display = "none"; } } }; window.changeVideo = function() { getFileUrl(); document.body.removeChild(document.getElementById("svoWindow")); var videoNode = document.createElement("VIDEO"); videoNode.setAttribute("src", fileUrl); videoNode.setAttribute("id", "svoWindow"); videoNode.setAttribute("autoplay", "autoplay"); videoNode.setAttribute("width", "30%"); videoNode.setAttribute("height", "30%"); videoNode.setAttribute("style", "display: none;z-index: 99999;position: fixed;bottom: 25px;right: 25px;top: auto;left: auto;"); document.body.appendChild(videoNode); }; window.createWindow = function() { var videoNode = document.createElement("VIDEO"); videoNode.setAttribute("src", fileUrl); videoNode.setAttribute("id", "svoWindow"); videoNode.setAttribute("autoplay", "autoplay"); videoNode.setAttribute("width", "30%"); videoNode.setAttribute("height", "30%"); videoNode.setAttribute("style", "display: none;z-index: 99999;position: fixed;bottom: 25px;right: 25px;top: auto;left: auto;"); document.body.appendChild(videoNode); }; window.closeWindow = function() { document.body.setAttribute("onscroll",""); document.getElementById("highlight_strip").setAttribute("onclick",""); document.body.removeChild(document.getElementById("svoWindow")); }; document.body.setAttribute("onscroll","scrollEvent()"); document.getElementById("highlight_strip").setAttribute("onclick","changeVideo()"); document.body.setAttribute("onload","getFileUrl();createWindow()"); var svoOptions = document.createElement("DIV"); var optionText = document.createTextNode("Steam Video Overlay 选项:"); svoOptions.setAttribute("class", "glance_tags_label"); svoOptions.appendChild(optionText); document.body.getElementsByClassName("rightcol")[0].appendChild(svoOptions); var closeButton = document.createElement("A"); var closeButtonSpan = document.createElement("SPAN"); var closeSpanText = document.createTextNode("关闭视频浮窗"); closeButton.setAttribute("onclick", "closeWindow()"); closeButton.setAttribute("class", "btnv6_blue_hoverfade btn_medium app_tag"); closeButtonSpan.appendChild(closeSpanText); closeButton.appendChild(closeButtonSpan); document.body.getElementsByClassName("rightcol")[0].appendChild(closeButton);