:reader!
by
noromanba
2018-01-24 [2018/01/24 05:03:06]
[WIP] force activate Reader View/Mode in Firefox
-
/*
* @title :reader!
* @description [WIP] force activate Reader View/Mode in Firefox
* @include http:*
* @include https:*
* @license MIT License https://opensource.org/licenses/MIT
* @javascript_url
* @bug unworks; waiting for relax about:reader permissions
*/
// similar behavior by LEGACY Extensions
//
// Desktop
// https://addons.mozilla.org/en-US/firefox/addon/activate-reader-view/
// https://addons.mozilla.org/en-US/firefox/addon/activate-reader-view/versions/#version-0.0.7
//
// Android
// https://addons.mozilla.org/en-US/android/addon/activate-reader-android/
// adapt but... "Activate"?
// Activate Reader View bump up to v0.1.0, rewrote by WebExtensions API
// https://addons.mozilla.org/en-US/firefox/addon/activate-reader-view/versions/#version-0.1.0
// same name *BUT* falsely similar
// losing aggressiveness, *JUST* a native reader-view alternative only
//
// browser.browserAction.onClicked.addListener((tab) => {
// browser.tabs.toggleReaderMode();
// });
//
// ...are you sure?
// Issue
//
// Add WebExtensions API(s) for reader mode
// https://bugzilla.mozilla.org/show_bug.cgi?id=1286387
//
// Reader mode can't be opened if tab is not considered an article
// https://bugzilla.mozilla.org/show_bug.cgi?id=1419520
// via "Remark (2017-11-21)" in "About this extension"
// https://addons.mozilla.org/en-US/firefox/addon/activate-reader-view/
(() => {
'use strict';
// Firefox Reader View/Mode syntax
// about:reader?url=<ENCODED_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 です。