Porterっぽい編集バーを生やすUserScript
導入方法(簡単版)
2. 自分のページの script.js
に貼り付ける
ボタンの説明
導入方法(カスタム)
( [/A/porter]
の mod.js
に貼り付けたとする)
2. ↓のように書いてボタンを追加する
jsimport { addButton } from "../../A/porter/mod.js";
const insertText = (text) => {
const cursor = document.getElementById("text-input");
cursor.focus();
cursor.value = text;
const event = new InputEvent("input", { bubbles: true });
cursor.dispatchEvent(event);
};
addButton({
display: "T",
onClick: () => {
const now = new Date();
const year = now.getFullYear();
const month = `${now.getMonth() + 1}`.padStart("0", 2);
const date = `${now.getDate()}`.padStart("0", 2);
insertText(`${year}-${month}-${date}`);
},
});
addButton({
display: ({ selection }) => selection.hasSingleLineSelection() ? "link" : "",
onClick: ({ selection }) => {
if (!selection.hasSingleLineSelection()) return;
insertText(selection.getSelectedText());
},
});
// ほしい数だけ書く
使ったみた。便利!!!!
![meganii meganii](https://scrapbox.io/api/pages/villagepump/meganii/icon)
インデントを直接操作できる
切り取り・コピーも楽
よかったです
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
常時編集バーがあると、アプリを閉じるときに誤作動(切り取り、ペースト)しそうなのがちょっと怖い
![meganii meganii](https://scrapbox.io/api/pages/villagepump/meganii/icon)
開閉ボタン作ってなかった
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
天才かな?
![Mijinko_SD Mijinko_SD](https://scrapbox.io/api/pages/villagepump/Mijinko_SD/icon)
![yosider yosider](https://scrapbox.io/api/pages/villagepump/yosider/icon)
すごすぎる
スマホの縦画面だと1ボタン分はみ出してしまうので、ちょっと改変してペーストボタン(clipboard)を削除した
ここらへん、ちゃんと収めようと思ったらCSSのGridとかが適してるのかな
スクロールできればいいかな
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
max-width: 80vw; overflow: auto;
うまくいったかも
script更新しておきました
2行にすると邪魔くさいのでやる気はしないけれど
特にキャレットを簡単に外せるのがありがたい
![Mijinko_SD Mijinko_SD](https://scrapbox.io/api/pages/villagepump/Mijinko_SD/icon)
![kuuote kuuote](https://scrapbox.io/api/pages/villagepump/kuuote/icon)
さんの成果を使わせていただいている
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
過去の資産の積み重ねでできている
iPadのSafariだとビルドでエラーが起きてコードが表示できなかった><
![基素 基素](https://scrapbox.io/api/pages/villagepump/基素/icon)
これに限らないと思うけど
どんなbuild errorが出ましたか?
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
iOSだとボタンを押すごとにIMEが出てきてしまうので連続して操作できない。Androidだとできているってことなんだろうなぁ
![基素 基素](https://scrapbox.io/api/pages/villagepump/基素/icon)
これAndroidでも発生したので、少しevent周りを調整して直しました
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
その上でiOSで依然同じ問題が発生するとしたら、さらにもう一工夫する必要があるということかな
.status-bar.left > div
ではなく、上流の .app
辺りにlistenerを生やす
document.getElementsByClassName("app")[0].addEventListener("click", (e) => { if(!e.target.matches(".status-bar.left > div")) return;/*...*/}, { capture: true });
みたいなコードを使えばいいかな
これでも十分そう
だめみたい
2022/5/6 17:05:37 Androidですが、まだ発生しています
![yosider yosider](https://scrapbox.io/api/pages/villagepump/yosider/icon)
えっそんなー
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
やっぱstopPropagetion()入れないとだめかな?
Androidでブラウザの間の実装の違いがあって起こる?
![基素 基素](https://scrapbox.io/api/pages/villagepump/基素/icon)
試してみてください
iOS出ちゃいました
![基素 基素](https://scrapbox.io/api/pages/villagepump/基素/icon)
押すたびにIMEの出し入れが起きますか?
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
ボタンを押す→IMEが閉じる→IMEが開く→……
iPhoneからアップしたらこうなった
![基素 基素](https://scrapbox.io/api/pages/villagepump/基素/icon)
どうやって動画を出してるんですか
![基素 基素](https://scrapbox.io/api/pages/villagepump/基素/icon)
scrapboxのparseの正規表現が、拡張子
MOVを動画URLとして認識していなかったようです
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
末尾に #.mp4
を付けて動画扱いにしたら読み込まれました
なるほど
![基素 基素](https://scrapbox.io/api/pages/villagepump/基素/icon)
録画ありがとうございます
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
これ通信ステータス部分自体が仮想キーボードの下に隠れてしまっていますね
この現象自体はこちらでもときどき起きます
画面回転させたりスワイプしてみたりして再描画させると治る
そんなの嘘でしょ・・・何故なんですか・・・(ボ並感)
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
Android 12 & Chrome 101 & GBoardなのですが、やはり出ます。。
![yosider yosider](https://scrapbox.io/api/pages/villagepump/yosider/icon)
どんな挙動か録画できますか?
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
情報があまりない気もしますが、左右の矢印ボタンを押してます
録画ありがとうございます
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
うわー
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
原因が検討つかない……
ほかにやってほしい操作があったら言って下さい
大丈夫です![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
コード中の "click"
を "touchstart"
に書き換えて実行してみてもらえますか?
click
より前のイベントで伝播を止めればいけるかも?
いっその事上部にstatus barを設置するのもありか?
nav barの下辺りに表示する
書き換えると良い感じになりました!
![yosider yosider](https://scrapbox.io/api/pages/villagepump/yosider/icon)
IMEが閉じた状態でボタンを押すとIMEが開くが、IMEが開いた状態でボタンを押してもIMEが閉じなくなった(+操作が反映されるようになった)感じ
IMEが閉じている状態で押すと操作が反映されてIMEが開き、IMEが開いている状態で押すと操作が反映されずにIMEが閉じるみたい
![yosider yosider](https://scrapbox.io/api/pages/villagepump/yosider/icon)
カーソルが外れる操作のlistenerが優先されている?
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
IMEのせいかな、と思ってAQUOS Sense 4 & Android 12 & Chrome 101 & GBoardでやってみましたが、再現できませんでした![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
再現できた
アウトライン編集以外のボタンを押すとキーボードが閉じる
閉じないときもある
アウトライン編集だとなぜかボタンを押しても閉じない
![yosider yosider](https://scrapbox.io/api/pages/villagepump/yosider/icon)
さんの結果と合わせると、
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
の環境でアウトライン編集のボタンを押してもキーボードが閉じない挙動のほうが異常っぽい?
![Mijinko_SD Mijinko_SD](https://scrapbox.io/api/pages/villagepump/Mijinko_SD/icon)
さんのスマホだとどうなんだろう
同様に矢印ボタンを押した時にキーボードが出ましたが、最新版を試していないので…
![Mijinko_SD Mijinko_SD](https://scrapbox.io/api/pages/villagepump/Mijinko_SD/icon)
undoボタンとかでは出ないっぽいですね
個人的に追加したアイコンを表示するボタンは逆にキーボードが閉じてしまっていたので、 takeCursor().focus
を入れて強制的に表示するようにした
バーを横にスクロールできない
![yosider yosider](https://scrapbox.io/api/pages/villagepump/yosider/icon)
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
さんのようにIMEを透過させて横向きで使えばいい?
![Mijinko_SD Mijinko_SD](https://scrapbox.io/api/pages/villagepump/Mijinko_SD/icon)
さんのように2段にすればいい?
キャレットが表示されていない状態でも操作できてしまうのが意外な挙動だった
![yosider yosider](https://scrapbox.io/api/pages/villagepump/yosider/icon)
キャレットが表示されていないときは操作できないようにするといいかも
ただ、これだと画面からはみ出すので、スクロールではなく自動的に二段にする仕組みも作ってみたいところ
スクロールだとなにか不便がありましたか?
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
あ、ごめんなさい
![Mijinko_SD Mijinko_SD](https://scrapbox.io/api/pages/villagepump/Mijinko_SD/icon)
まだ試してないです…
二段にした方が一覧性やアクセスのしやすさが向上するかなーって思ったので
アクセスはしやすそう
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
なるほど
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
あそうだ。ひとつ不便があった
![takker takker](https://scrapbox.io/api/pages/villagepump/takker/icon)
スクロールとアプリの切り替えジェスチャーとが干渉する
タイムスタンプを入れるボタンを追加した
本家を使ったのではなく自分で勝手にソースコードを改造して入れたものだから、ここに書いたら紛らわしい気がした
![Mijinko_SD Mijinko_SD](https://scrapbox.io/api/pages/villagepump/Mijinko_SD/icon)
アイコンを探すのがめんどくさくて T
をそのまま入れた