您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This userscript adds fullscreen buttons to Flash movies and games that otherwise wouldn't allow it.
- // ==UserScript==
- // @name Fullscreen Flash objects
- // @namespace samuelphillips.net
- // @include http://www.mspaintadventures.com/*
- // @include https://www.mspaintadventures.com/*
- // @include http://www.newgrounds.com/portal/view/*
- // @include https://www.newgrounds.com/portal/view/*
- // @include http://www.miniclip.com/games/*/*/*
- // @include https://www.miniclip.com/games/*/*/*
- // @include http://www.engineering.com/GamesPuzzles/Motherload/tabid/4708/Default.aspx
- // @include http://www.kongregate.com/games/*/*
- // @include https://www.kongregate.com/games/*/*
- // @version 2
- // @grant none
- // @description This userscript adds fullscreen buttons to Flash movies and games that otherwise wouldn't allow it.
- // ==/UserScript==
- // Generated by LiveScript 1.4.0
- (function(){
- (window.dofsfload = function(){
- var selTargets, st, observeDom, handleFlashObjects, fscHandler;
- selTargets = "embed, object, iframe";
- console.log("Fullscreen Flash Objects loaded!");
- st = document.createElement('style');
- st.type = 'text/css';
- st.appendChild(document.createTextNode(".fullscreen {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: black;\n}\n\n.fullscreen .hide-when-fs {\n display: none;\n}\n.fullscreen::before {\n display: none;\n}\n.fullscreen::after {\n display: none;\n}\n.user-fullscreen-button {\n " + (/mspaintadventures\.com/.test(location.href) ? "" : "position: absolute;\nbottom: 100%;") + "\n}"));
- document.head.appendChild(st);
- observeDom = function(){
- var MutationObserver, ref$, eventListenerSupported;
- MutationObserver = (ref$ = window.MutationObserver) != null
- ? ref$
- : window.WebKitMutationObserver;
- eventListenerSupported = window.addEventListener;
- return function(obj, callback){
- var obs;
- if (MutationObserver != null) {
- obs = new MutationObserver(function(mutations, observer){
- if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) {
- return callback();
- }
- });
- obs.observe(obj, {
- childList: true,
- subtree: true
- });
- } else if (eventListenerSupported) {
- obj.addEventListener('DOMNodeInserted', callback, false);
- obj.addEventListener('DOMNodeRemoved', callback, false);
- }
- };
- }();
- handleFlashObjects = function(place){
- var embeds, i$, len$;
- embeds = place.querySelectorAll(selTargets);
- for (i$ = 0, len$ = embeds.length; i$ < len$; ++i$) {
- (fn$.call(this, embeds[i$]));
- }
- function fn$(embed){
- var btn;
- if (embed.getAttribute('data-has-fs-btn')) {
- return;
- }
- embed.setAttribute('data-has-fs-btn', 'true');
- btn = document.createElement('button');
- btn.innerHTML = "Fullscreen";
- btn.setAttribute('class', 'user-fullscreen-button hide-when-fs');
- embed.parentNode.insertBefore(btn, embed);
- btn.addEventListener('click', function(){
- var pn, bind;
- pn = embed.parentNode;
- window.myCurrentFullscreenEmbed = embed;
- bind = function(obj, k){
- if ((obj != null ? obj[k] : void 8) != null) {
- return function(){
- return obj[k].apply(obj);
- };
- } else {
- return null;
- }
- };
- if (pn.requestFullscreen != null) {
- pn.requestFullscreen();
- } else if (pn.mozRequestFullScreen != null) {
- pn.mozRequestFullScreen();
- } else if (pn.webkitRequestFullScreen != null) {
- pn.webkitRequestFullScreen();
- } else if (pn.msRequestFullScreen != null) {
- pn.msRequestFullScreen();
- } else {
- console.log("No requestFullscreen");
- }
- }, false);
- }
- };
- handleFlashObjects(document);
- observeDom(document.body, function(){
- handleFlashObjects(document);
- });
- fscHandler = function(){
- var fse, emb, hratio, wratio, ratio, height, width, embeds, i$, len$;
- fse = document.fullscreenElement;
- if (fse == null) {
- fse = document.mozFullScreenElement;
- }
- if (fse == null) {
- fse = document.webkitFullScreenElement;
- }
- if (fse == null) {
- fse = document.msFullscreenElement;
- }
- if (fse) {
- fse.classList.add('fullscreen');
- emb = window.myCurrentFullscreenEmbed;
- console.log('fullscreen on!');
- hratio = screen.height / emb.getAttribute('height');
- wratio = screen.width / emb.getAttribute('width');
- ratio = Math.min(hratio, wratio);
- console.log("Setting data-orig-* on %o", fse);
- emb.setAttribute('data-orig-width', emb.getAttribute('width'));
- emb.setAttribute('data-orig-height', emb.getAttribute('height'));
- height = ratio * emb.getAttribute('height');
- emb.setAttribute('height', height);
- width = ratio * emb.getAttribute('width');
- if (width === screen.width) {
- width -= 1;
- }
- emb.setAttribute('width', width);
- document.body.focus();
- } else {
- document.querySelector('.fullscreen').classList.remove('fullscreen');
- console.log('fullscreen off!');
- embeds = document.querySelectorAll(selTargets);
- for (i$ = 0, len$ = embeds.length; i$ < len$; ++i$) {
- emb = embeds[i$];
- try {
- emb.setAttribute('width', emb.getAttribute('data-orig-width'));
- emb.setAttribute('height', emb.getAttribute('data-orig-height'));
- } finally {
- 0;
- }
- }
- }
- };
- document.addEventListener('fullscreenchange', fscHandler, false);
- document.addEventListener('mozfullscreenchange', fscHandler, false);
- document.addEventListener('webkitfullscreenchange', fscHandler, false);
- document.addEventListener('msfullscreenchange', fscHandler, false);
- })();
- }).call(this);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址