PCのブラウザでMastodonの投稿フォームにハッシュタグを追加するブックマークレット
Twitterでは途中からブックマークレットが使えなくなったのだけどTweetDeckでは使えてて、ツイートする前の文字数をカウントする私のフォームでも使っていた、ハッシュタグを追加するブックマークレットをマストドンで使ったら、投稿前にハッシュタグが消えてしまうトラブルが発生して、そのことを投稿したら親切な人が原因と解決策を教えてくれた。 Mastodon には react が使われているため、度々それ由来の罠にはまることがあります。投稿欄の文言を変更する操作なんかがそれです。そのままだと変更できたように見えて実はできていない状態になってしまいます。 ( Mastodon の投稿欄をブックマークレットでいじるコツ - ゆるめ ) そこに書いてあるソースを基にブックマークレットを作ると、ブックマークのURLに次のように書く。 javascript:(function(){const tootArea = document.querySelector('.compose-form textarea');const replacedText = tootArea.value.replace(/$/, ' #ハッシュタグ');Object.getOwnPropertyDescriptor(Object.getPrototypeOf(tootArea), 'value').set.call(tootArea, replacedText);tootArea.dispatchEvent(new Event('input', { bubbles: true }));})(); #ハッシュタグ 「document.querySelector('.compose-form textarea');」はマストドンのソース内の「class="compose-form"」内の<textarea>のことらしい。 私はマストドン以外の例えば私が作ったフォームでも使いたいので少し修正する必要がある。 私が使っていた元々のブックマークレットは次のようなものだった。 javascript:(function(){var STR='