編集ページにジャンプするメニューを追加する
別途、ユーザー向けの(参照用の)ページから、編集用のページに移動する方法についてのやり方を短編にまとめました。
こちらを、案外と参照された方が多かったので、直接当該ページへジャンプするメニューを追加するような拡張機能を作ってみました。当初はもういいかな、って思ったんですけれど。まあやっつけではあるのですが。
manifest.json は以下の通り
----------
{
"name": "narouToEdit",
"version": "1.0.0",
"manifest_version": 3,
"description": "なろうの小説画面から編集画面に移動する機能を提供する",
"content_scripts": [{
"matches": ["https://ncode.syosetu.com/*"],
"js": [
"content.js"
]
}]
}
----------
そして、content.jsは以下の通り
----------
const mynames = ["あいなめ", "あまえび", "あかえい"];
let name = undefined;
let div = document.querySelector("div.novel_writername");
if (div != null) {
name = div.textContent.substring(div.textContent.indexOf(':') + 1).trim();
}
else {
div = document.querySelector("div.contents1");
if (div != null) {
name = div.textContent.substring(div.textContent.lastIndexOf('作者:') + 3).trim();
}
}
if (mynames.includes(name)) {
const header = document.getElementById("head_nav");
const id = header
.children[3]
.firstElementChild
.getAttribute("href")
.match(/\/list\/ncode\/(\d+)\//)[1]
const url = 'https://syosetu.com/usernovelmanage/top/ncode/' + id + '/';
const html = "<li><a href='" + url + "'>編集</a></li>";
const elem = document.createRange().createContextualFragment(html);
header.insertBefore(elem, header.lastElementChild);
}
------
編集ページに移れるのは、自分の作品だけなので、一応作者名でチェックを入れてあります。最初のmynamesはご自身の名前に書き換えてください。aliasを使っている場合は、それを含めて。私の場合は、今のところこの三つ。
拡張機能の登録のやり方は、最初の部分で書いた通り。これで、自分の作品を表示させると
のように、縦書きPDFの右に「編集」メニューが追加されます。これをクリックすると、
と編集ページに飛べます、と。
chrome/edgeをお使いの方は、より簡単に操作できるでしょう。
スマホだとまだ使えませんが、スマホ用のedgeに拡張機能をサポートするという動きがあるようです。今月末には実装されるのかな? 野良拡張機能を入れられるかどうかは判らないのですが、可能ならスマホでも色々出来るようになりそうです。私はタブレットに入れたい。
それではまた何かありましたら。
ソースに余計なdivへの代入が残っていたので、削除しました。
マニフェストの拡張機能名を修正しました。