Greasy Fork is available in English.

web漫画にショートカットキーを追加

←→:前/次のページ S:スクロール速度変更 A:頭出しオンオフ f [:全画面化 Shift+←→か ] Enter:前の話/次の話に移動 Shift+↑:作品情報ページに戻る (ニコニコ静画のみ)C:コメントオンオフ H:ヘッダ固定追従変更 (作品情報ページで)→:第1話に移動、Enter:最新話に移動、Shift+↑:パンくずリスト1つ上に移動 Shift+@:インスタントsibling登録

質問やレビューの投稿はこちらへ、スクリプトの通報はこちらへどうぞ。
作者
minarai
1日のインストール
0
インストール
117
評価
0 0 0
バージョン
0.1.13
作成
更新
ライセンス
不明
適用サイト

スクリプト作者による説明

■ 機能

1.対応サイトにキーボードによるショートカットキー(後述)を追加します
ニコニコ静画(漫画)、ツイ4、コミックぜにょん、コミックエッセイ劇場、裏サンデー、やわらかスピリッツ、コミックバンチ、ジャンプルーキー、マンガハック、ヤングエースUP、コミックNewtype、MATOGROSSO、すくパラぷらす、Souffle、comicタタン、cakes(要リロード)、コミックPASH!、よみタイ、note、笑うメディアクレイジー等

2.対応サイト(ソース参照)で漫画の作者名の横にそのキーワードでWeb漫画アンテナを検索するリンクを追加します

■ 追加されるショートカットキー

○漫画各話ページで

・←→で前/次のページまでキリよくスクロール
・画面に中途半端に見えているページ画像を左クリックすると画面のちょうどの位置にスクロール
・画面ちょうどの位置に見えているページ画像を左クリックすると次の画像までキリよくスクロール

・スクロールが画面の上端にいる時に←で前のエピソードに移動
・スクロールが最終画像の位置にいる状態で→で次のエピソードに移動
・Shift+←(または ] キー)で前のエピソードに移動
・Shift+→(または Enter)で次のエピソードに移動
・Shift+↑で作品情報ページに戻る

・Aキーで頭出し機能オンオフ(オンにすると各話ページを開いた時にすぐに1つめのページまでスクロール)
・Fキー(または [ キー)で全画面表示
・Shift+Sキーでスクロール速度変更(0でAPI使用、1で瞬間移動、1.01~で速度指定)

○作品情報ページ(seiga.nicovideo.jp/comic/* 等)で

・→で第1話のページに移動
・Shift+→(または Enter)で最新話のページに移動
・Shift+↑でパンくずリストを1つ上に昇る

○ニコニコ静画(漫画)のみで使えるショートカットキー
・Cキーでコメント表示をオンオフ
・Hキーでヘッダ表示固定/追従を切り替える

設定はGM_setValue領域に保存されます

どの機能が実装されているかはサイトによって違い、使える機能はポップアップヘルプで表示されます
ただし要素がページに追加されるタイミングが遅いサイトなどで、機能は使えるのにポップアップが出ないこともあります

■ サイト情報の書き方

対応サイトは自分でサイト情報を書いて増やすことができます

スクリプト冒頭の
const SITEINFO = [ ] の中にサイト1つあたり
,{
url: '',
sibling: '',
header: '',
nextEpisode: '',
prevEpisode: '',
atamadashi: '',
disableSnapWhenPageIsClicked: 0,
author: '',
firstEpisode: '',
lastEpisode: '',
pankuzuUp: '',
}
の形式で必要な情報を記述します

内容は
url: 記述したいサイトのurlにマッチする正規表現
sibling: めくりたいページ要素を指すXPath(nextSiblingで次ページを指せるように/..等で親子階層を合わせる必要があります)(省略可)
header: ページ上部にピン留めされたヘッダ(スクロールにくっついてくる帯みたいなの)があればその要素を指すXPath(省略可)
atamadashi: 頭出し機能true時にデフォルト動作(最初のsibling要素)ではなく特定の要素にスクロールさせたい時のXPath(省略可)
prevEpisode: と nextEpisode: ]やEnterキーでクリックする1つ前の話と次の話へのリンクを指すXPath(省略可)
disableSnapWhenPageIsClicked: 1にすると「ページ要素の左クリックで要素にスナップしたり次ページにスクロールする機能」を無効にする(省略可)
author: 漫画の作者名が書かれている要素を指すXPath(省略可)
firstEpisode: と lastEpisode: 第1話と最新話を指すXPath(省略可)
pankuzuUp: Shift+↑でクリックする要素(パンくずリストの1つ上)を指すXPath(省略可)
です

そしてスクリプト冒頭のメタデータブロックにそのサイトに対応する@match文(または// @match *://*/*)を追加してください

■ その他

・web漫画に~という名前ですが実際は兄弟ノードで縦に記事等が並んでいるサイトなら対応できる可能性があります
デモとしてWeb漫画アンテナ、bokete、類似漫画検索、twitter、5ch等で←→キーが使えます

・サイトの隅々のページまでは動作確認していないので、判定を誤爆するところがあるかもしれません
不便な判定をする時はSITEINFOの該当する行を書き直したり消したりしてください

・ポップアップヘルプの表示時間を変える(または消す)にはスクリプト冒頭の
const PopupHelpMS = 4000;
の数値を増減してください

■ インスタントsibling登録機能

「←→キーで前/次の項目へキリよくスクロールする」機能のみ、ソースに触らずに素早く設定して使うことができます
この機能を使うにはスクリプト冒頭のメタデータブロックにそのサイトに対応する@match文(または// @match *://*/*)を追加してください
そしてそのサイトでShift+@を押すとプロンプトが出るので、めくりたいページ要素を指すXPath(前述のsibling:に対応)を入力してください
サイトによって自動判別で提案するXPathを内蔵しており、それがある場合はそれをフォームに初期値として入れて提案してきます
空欄を入力すると設定を削除します
XPathが適切なら同ドメイン内のページで←→キーが効くようになります
この設定はGM_setValue領域に保存され、内蔵のサイト情報より優先して利用されます
再度Shift+@を押すとソースに挿入できる形でSITEINFOの一節がプロンプトに出力されるので必要ならソースにコピーしてください


不具合や要望があれば:(Bitmessage)BM-NBKhGgzahPds3f5Ms6ZRJyvZoMNgTYy4