[<>]+ Fork

    @@ -17,18 +17,10 @@ // https://caniuse.com/#feat=fullscreen // https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API - // TBD feature detection function + // TBD smart feature detection (() => { 'use strict'; - // do not react keyboard/mouse on `html` context at few major versions e.g. - // Chromium 65.0.3325.181-0ubuntu0.16.04.1 - const context = [ - document.documentElement, - document.head, - document.body, - ].shift(); - // chaotic naming when prefixing; Fullscreen or FullScreen c.f. // https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API#Prefixing
    @@ -57,6 +49,14 @@ HTMLDocument.prototype.webkitCancelFullScreen ? document.webkitCancelFullScreen.bind(document) : new Error('not implemented yet'); + + // do not react keyboard/mouse on `html` context at few major versions e.g. + // Chromium 65.0.3325.181-0ubuntu0.16.04.1 + const context = [ + document.documentElement, + document.head, + document.body, + ].shift(); // differences between case only; "Screen" or "screen" // https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen
  • /*
     * @title [<>]+
     * @description strictly Chrome/ium well-fullscreen on LXDE or Other DE on Ubuntu
     * @include http://*
     * @include https://*
     * @contributor noromanba   http://let.hatelabo.jp/noromanba/let/hJmdkteA6YED
     * @license     MIT License https://opensource.org/licenses/MIT
     * @javascript_url
     */
    
    // ill-fullscreen c.f.
    // https://ubuntuforums.org/showthread.php?t=2244152
    // https://askubuntu.com/questions/638148/how-to-make-chrome-truly-full-screen-in-lubuntu
    // and can not fix the problem to edit ~/.config/openbox/lubuntu-rc.xml
    //
    // Fullscreen API is not standarized yet c.f.
    // https://caniuse.com/#feat=fullscreen
    // https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API
    
    // TBD smart feature detection
    (() => {
        'use strict';
    
        // chaotic naming when prefixing; Fullscreen or FullScreen c.f.
        // https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API#Prefixing
    
        // `document.fullscreen()` is obsolete
        // https://developer.mozilla.org/en-US/docs/Web/API/Document/fullscreen
        // instead of `document.fullScreen()` `document.webkitIsFullScreen()`
        // https://developer.mozilla.org/en-US/docs/Web/API/DocumentOrShadowRoot/fullscreenElement
        // https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API#Prefixing
        const fullscreen =
            // sting feature detection for avoid Illegal invocation due to Object
            'fullscreenElement' in HTMLDocument.prototype ?
            document.fullscreenElement :
            'webkitFullscreenElement' in HTMLDocument.prototype ?
            document.webkitFullscreenElement :
            'webkitCurrentFullscreenElement' in HTMLDocument.prototype ?
            document.webkitCurrentFullscreenElement :
            new Error('not implemented yet');
    
        // https://developer.mozilla.org/en-US/docs/Web/API/Document/exitFullscreen
        // https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API#Prefixing
        const exitFullScreen =
            HTMLDocument.prototype.exitFullScreen ?
            document.exitFullScreen.bind(document) :
            HTMLDocument.prototype.webkitExitlFullScreen ?
            document.webkitExitlFullScreen.bind(document) :
            HTMLDocument.prototype.webkitCancelFullScreen ?
            document.webkitCancelFullScreen.bind(document) :
            new Error('not implemented yet');
    
        // do not react keyboard/mouse on `html` context at few major versions e.g.
        //      Chromium  65.0.3325.181-0ubuntu0.16.04.1
        const context = [
            document.documentElement,
            document.head,
            document.body,
        ].shift();
    
        // differences between case only; "Screen" or "screen"
        // https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen
        // https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API#Prefixing
        const requestFullscreen =
            Element.prototype.requestFullscreen ?
            context.requestFullscreen.bind(context) :
            Element.prototype.webkitRequestFullscreen ?
            context.webkitRequestFullscreen.bind(context) :
            Element.prototype.webkitRequestFullScreen ?
            context.webkitRequestFullScreen.bind(context) :
            new Error('not implemented yet');
    
        fullscreen ? exitFullScreen() : requestFullscreen();
    })();
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。