:reader!

    
      
  • /*
     * @title :reader!
     * @description [WIP] force activate Reader View/Mode in Firefox
     * @include *
     * @license MIT License https://opensource.org/licenses/MIT
     * @javascript_url
     * @bug unworks;  waiting for relax about:reader permissions
     */
    
    // similar behavior by Extensions
    //
    // legacy
    // https://addons.mozilla.org/en-US/firefox/addon/activate-reader-view/
    //
    // android only
    // https://addons.mozilla.org/en-US/android/addon/activate-reader-android/
    
    // Issue
    // Add webextensions API(s) for reader mode
    // https://bugzilla.mozilla.org/show_bug.cgi?id=1286387
    
    (() => {
        'use strict';
    
        // Firefox Reader View/Mode Syntax
        //      about:reader?url=<URL>
        const READER_SYNTAX = 'about:reader?url=';
    
        if (location.href.startsWith(READER_SYNTAX)) {
            // FIXME about:reader can not access from Content/javascript:-context e.g.
            // http://let.hatelabo.jp
            //      "Error: Access to 'about:reader?url=http%3A%2F%2Flet.hatelabo.jp%2F' from script denied"
            //
            // native location obj in Reader View
            //  location.protocol -> "about:"   // yap
            //  location.pathname -> "reader"   // oh
            //  location.search   -> ""         // oops...
            //
            // location.assign() can not works
            location.replace(new URL(location.href).searchParams.get('url'));
    
        }
    
        // TBD history.back()
        // TBD canonical
        location.replace(READER_SYNTAX + encodeURIComponent(location.href));
    })();
    
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2018/01/24 05:03:06 - 2018-01-24
  2. 2017/10/27 16:18:41 - 2017-10-27