はてなキーワード: ブックマークレットとは
自分では作れないので今までは誰かが作って公開していたGoogleキャッシュの取得やTwitter検索や魚拓検索くらいしか利用できていなかったが、ChatGTPに頼めば簡単に作ってくれるので、いくらでも細かい指示を出して量産できる。Twitterで今見てるアカウント内で検索、ハイライトした文字を国会図書館デジタルで検索、青空文庫で検索、Fanzaで検索、その他◯◯で検索ってのを普段調べで使うサイトで作って他に、増田で太字タグをつける、URLタグをつける、引用タグをつける、といったはてな記法を使いやすくするブックマークレットも作った。Webアーカイブで開いたページの元ページのはてブのコメントページを開く、だったり、朝日新聞のURLを変換してTwitterで検索するなんて「葬送のフリーレン」に出てくる魔法みたいに特定用途でしか使わない自分用のブックマークレットも作れて満悦。
無料会員のタダ読み3本機能の代わりに導入された有料会員によるプレゼント機能が導入されてもう1年(?)。増田が初めて知ったのはwattoさんのブコメでプレゼントURLを貼ってくれた時だが、最近になってTwitterでスーパーインフルエンサーの暇空アノンのいちゃもんのおかげで一気に機能が周知された。その結果なのかTwitterでもプレゼントURLの貼り付けが増えた感。
面白いのは、いわゆるリベラル系のアカウントの利用のみならず、反リベラル系の有名アカウントもちらほらとプレゼント機能を利用してるってことな。閲覧数は反リベラル系が圧倒的。まあそれなりにコンサル系や研究者系なら思想の左右問わず朝日読売日経辺りを読まないわけにはいかないし、中立アピールのためにあえて朝日ソースを使うってことかな
そして我ながらとんでもなくみみっちいブックマークレットをChatGPTに頼んで作ってもらった
朝日デジタルの有料記事ページを開いている時にクリックするとTwitterで有料記事プレゼント機能を使ってる(と思われる)ツイートを検索するブックマークレット。
javascript: (() => { const currentUrl = window.location.href; const digitalUrl = `digital${currentUrl.match(/\.asahi\.com\/articles\/.+\.html/i)[0]}`; const searchUrl = `https://twitter.com/search?q=${encodeURIComponent(digitalUrl)}&f=live`; window.open(searchUrl, %27_blank%27);})();
このChatGPTのJavaScriptの説明がどうしても分からない。解説あってる?
var idx は、現在開いているWebページのURL文字列に ? が含まれている場合に、その位置を取得するために使用されます。これは、クエリ文字列の開始位置を特定するために必要な処理です。
たとえば、以下のようなURLが現在開いているWebページのURLであった場合、
https://example.com/search?q=keyword&page=1
var idx = url.indexOf('?'); というコードを実行することで、変数 idx には 8 という値が代入されます。これは、? の位置がURL文字列の8文字目にあることを示しています。
var idx はURLの文字列の何番目に?があるかって意味だとは分かった。でも例文のURLだと?の位置はhから数えて27番目だよね。聞いてみた
おっしゃる通り、指定されたURL https://example.com/search?q=keyword&page=1 において ? の位置は h から数えて 27 番目の文字です。
しかし、ブックマークレットのコード中では idx の初期値として url.indexOf('?') を設定しています。この indexOf() メソッドは、指定された文字列が最初に現れる位置を返します。もし文字列が見つからなかった場合は -1 を返します。
したがって、ブックマークレットのコード中で url.indexOf('?') を実行すると、? の位置が返されます。指定されたURLにおいて ? は https:// の直後に出現するため、url.indexOf('?') の実行結果は 8 になります。
つまり、ブックマークレットのコード中では ? の位置ではなく、? の次の文字(q)の位置が idx として設定されていることになります。
なんか意味がわからない。その後もどっから数えた数字がidxになるのかいくつか聞いてみたが堂々巡りになってしまって明確な答えが分からない
今開いているWebページのURLから、?以降を削除して、代わりに .jpg と付け足したURLを、同じブラウザのタブで開き直すブックマークレット
javascript: (function () {
var url = window.location.href;
var newUrl = url.substring(0, url.indexOf("?")) + ".jpg";
})();
javascript: (function () {
var url = window.location.href;
if (url.startsWith("https://pbs.twimg.com/")) {
var newUrl = url.substring(0, url.indexOf("?")) + ".jpg";
} else {
alert("このブックマークレットは Twitter の画像限定でのみ使用できます。");
}
})();
やったー!プログラムとか全然分からんけどChatGPTに頼んで「開いてるページのURLから#以下を消してURLを開くブックマークレット」を作ってもらったぜ
javascript:(function() {
var currentUrl = window.location.href;
var urlWithoutHash = currentUrl.split('#')[0];
})();
やったー!プログラムとか全くわからんけどChatGPTに聞いたら前から欲しかったブックマークレットの機能を簡単に作ってくれたぜ
JavaScriptで今見ているサイトのタイトルをクリップボードにコピーするブックマークレットのコードは、以下のようになります。
javascript:(function(){
let input = document.createElement("input");
document.body.appendChild(input);
input.select();
document.execCommand("copy");
document.body.removeChild(input);
alert("クリップボードに「" + title + "」をコピーしました。");
})();
ブックマークレットでjavascriptをどうぞ。 例えば↓だったら、増田の「言及先エントリを開く」や「ツリーの言及」を全部開くことが出来る。
javascript:document.querySelectorAll(".optimize-get-reference-button,.trackback-header a[onclick]").forEach(function(e){e.click();});
んでブックマークレットに慣れてきたら、Greasemonkey(Tempermonkey)やstylusのような拡張をどうぞ。
→ 言及が全部開かれる
時間 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
---|---|---|---|---|
00 | 190 | 15463 | 81.4 | 34.5 |
01 | 130 | 10768 | 82.8 | 34 |
02 | 104 | 6916 | 66.5 | 45.5 |
03 | 45 | 7795 | 173.2 | 36 |
04 | 20 | 6453 | 322.7 | 42.5 |
05 | 20 | 1892 | 94.6 | 55 |
06 | 25 | 3790 | 151.6 | 63 |
07 | 46 | 5579 | 121.3 | 53 |
08 | 84 | 5894 | 70.2 | 35.5 |
09 | 160 | 19443 | 121.5 | 36 |
10 | 172 | 15563 | 90.5 | 44 |
11 | 209 | 15987 | 76.5 | 39 |
12 | 206 | 15879 | 77.1 | 35 |
13 | 151 | 21364 | 141.5 | 42 |
14 | 177 | 15679 | 88.6 | 39 |
15 | 154 | 16900 | 109.7 | 52.5 |
16 | 176 | 13978 | 79.4 | 32.5 |
17 | 141 | 14707 | 104.3 | 37 |
18 | 211 | 18211 | 86.3 | 33 |
19 | 131 | 16907 | 129.1 | 47 |
20 | 180 | 16635 | 92.4 | 36 |
21 | 155 | 11847 | 76.4 | 39 |
22 | 164 | 11534 | 70.3 | 32 |
23 | 150 | 16564 | 110.4 | 40 |
1日 | 3201 | 305748 | 95.5 | 38 |
ノールッキンバック(5), クライミング(7), 春奈(3), 複素関数(3), ひょうきん族(3), クンマー(5), ⬆(3), 囲碁棋士(3), 散布図(4), 8月3日(3), replace(3), 映像の世紀(3), ルック(50), バック(53), 膣(23), 修正(56), 統合失調症(22), 金メダル(11), パラリンピック(9), ⭕(10), 知的障害(11), 精神病(11), 帰省(16), アスリート(20), パクリ(11), 陰キャ(24), 改変(10), 感染者数(14), サッカー(13), ジャンプ(23), 入院(20), 重症(23), 接種(33), 五輪(42), 患者(32), 打っ(24), ワクチン(79)
■20代だが、ビートたけしを面白いと思ったことがない。 /20210801110936(37), ■膣モテ・穴モテなどという存在しない概念を信じる人達 /20210803072223(22), ■ゴールデンカムイを読んで絶望している /20210803180420(17), ■ /20210803123028(13), ■ワクチン打たないやつwwwwww /20210803160809(10), ■ブコメの熊がウザいので、削除するブックマークレット作った /20210803012020(10), ■anond:20210802103404 /20210802125836(10), ■表現の自由戦士だけど「ルックバック」修正の件である程度の表現規制は必要なのではと思い始めた /20210803011714(10), ■はてなにおける、バカの人口 /20210803105052(9), ■短い文字数で最大公約数的に人を傷つけたい /20210803155716(9), ■ドMだけど寝取られは好きじゃない /20210802214818(9), ■東京五輪:中国選手が韓国戦でずっと発していた気合い…実は罵り言葉だった /20210803062447(8), ■集団免疫獲得不可能が確定 /20210802183230(8), (タイトル不明) /20210803091953(8), ■人生、楽しくないやんけ〜ッ!!! /20210729212156(7), ■急募 おじさんの落とし方 /20210802174232(7), ■ルックバック事件がはてなーを直撃 /20210803013757(7), ■みんな好意的に受け止めてるけど、呪術はやっぱりいろんなところからパクリ過ぎやろ /20210803211107(7), ■ /20210803145255(6), ■据え置き機のアイマスゲーム新作生放送が何の注目もされてなくて悲し /20210802144840(6), ■anond:20210803154057 /20210803162455(6), ■八尺様たちがどんどん負けている /20210801155810(6), ■なんで男は女に比べて感想や二次創作で作品を盛り上げようとしないの /20210803233912(6), ■色覚異常について、知見をください /20210803155240(6)
クマが30匹程度では建設的と判定されないことがあるようなので、そんな時は
const MinimumRequiredLength = 30;
の部分を変えてみてください。
その際は、ドラッグし直すのでなく、
追加済みのブックマークレットを右クリック→「編集」で、30の部分だけ書き換えればOKです。
追記ここまで
https://anond.hatelabo.jp/20210803012020
に刺激を受けて作りました。
https://b.hatena.ne.jp/entry/4706344345181168386/comment/new3
で、書き込み時の自動クマ補完について書かれてたので、それを実装しました。
以下の文字列を選択して、Chromeのブックマークバーにドラッグしてください。
javascript:(function () { const MinimumRequiredLength = 30; const currentCount = Number(document.querySelectorAll(".js-bookmarkadd-comment-count")[0].innerText); if (Math.floor(MinimumRequiredLength / currentCount) !== 0) { const elem = document.querySelectorAll(".bookmarkadd-comment-form")[0]; if (elem.value.slice(-1) !== " ") { elem.value += " "; } const loopNum = Math.ceil((MinimumRequiredLength - currentCount) / 5); for (let i = 0; i !== loopNum; i++) { elem.value += "ʕ•̫͡•"; } elem.value += "ʔ"; elem.dispatchEvent(new Event("input")); } })();
「_5)」みたいな変な名前で追加されるので、右クリック→「編集」から好きな名前に変えてください。(addBearとか)
はてブのコメント書き込み画面でブックマークレットをクリックしてください。
これで追加したクマを、コメント一覧画面で削除するためのブックマークレットは、
javascript:(function () { document.querySelectorAll(".entry-comment-text").forEach(function (e) { e.innerText = e.innerText.replace(/[ʕ•̫͡•ʔ]+$/, ""); }); })();
です。
セットでお使いください。(名前はremoveBear?)
私はクマで埋めることはしないのですが、埋めたい人もいるでしょうから、道具としてはあればよいと思いました。
最後のクマだけ左頬のパーツを変えて……、など10秒くらい掛けてると思うのです。
その間、「ああ……またこんな作業をして……私ったら承認欲求の塊なのかしら、いやらしいわ」と自己嫌悪してたら可哀想なので、
少しでもネガティブな時間が短くなるよう、活用してみてください。
熊の部分だけを削除する場合は、それでも良いですが、自分の場合は、熊コメントしてるユーザーの範囲全体を削除したかったんで最初のブックマークレットのようにしました。
javascript:document.querySelectorAll(".entry-comment-contents").forEach(function(e){if(e.innerText.indexOf('🐻')!=-1||e.innerText.indexOf('ʕ•̫͡•ʔ')!=-1){e.remove()}})
ブックマークレットのクリックが面倒な人は、GreasemonkeyかTampermonkeyで。
他のパターンのコメント削除したい人は『||e.innerText.indexOf('削除したいコメントに含まれる文字列')!=-1』を修正なり、追加なりでどうぞ。
何か要望があれば、はてブコメント(ただし熊系は消してます)か言及でどうぞ。気が向いたら対応します。
なんか漏れてるのがある。文字列の方は、もっと短くした方が良さそう。ただ、これでも漏れてるのがありそうで、もし多様されそうなら対策の調査か、はてブユーザーの非表示機能を使おう。一応、サンプルの提供感謝。
javascript:document.querySelectorAll(".entry-comment-contents").forEach(function(e){if(e.innerText.indexOf('🐻')!=-1||e.innerText.indexOf('•̫͡')!=-1){e.remove()}})
>id:kako-jun クマで後半を埋めてるコメントで、前半は残したいので、正規表現にして後置のクマだけ消してほしい
こんなんでどうだろう。『正規表現にして後置のクマ』が面倒なので、『1文字目に熊がある場合は削除対象外』で。あと『クマだけ消す』も不十分だと思うので、『replace(/a|b|c|d/g, '')』のabcdの箇所を必要に応じて修正して。
javascript:document.querySelectorAll(".entry-comment-text").forEach(function(e){if(2<e.innerText.indexOf('🐻')||2<e.innerText.indexOf('•̫͡')){e.innerHTML=e.innerHTML.replace(/🐻|ʕ|•|̫͡|̫•|ʔ/g, '');}})
ただ、増田の仕様で『<>(大なり小なり)の半角』が使えないので、上記の<は<の半角に適宜変換してください。
id:kako-jun 氏が、自身で作られてました。
https://b.hatena.ne.jp/entry/4706344345181168386/comment/kako-jun
javascript覚えてブックマークレット作れると、割と便利よ。
まずWebページ。これは Chrome に入ってる翻訳ツールを使えばだいたい読めるようになる。Edgeも右クリックメニューか何かで翻訳できるはずだ。技術文書とかでもだいたい合ってる位には翻訳してくれるぞ。使っていけ。
何?翻訳ツールが出てこない?あぁ、昔はあんまり使えなかったから設定でOFFにしてるんじゃないかな。今のChromeの翻訳ツールはかなり良くなってるぞ。それぞれのOS毎に設定項目が違うんでここでは詳しく書かないがまぁ自分で調べてONにしておけ。
え?俺はiPhoneでSafariが使いたいだ?そうか。iOSでもChromeなら翻訳ツールがついてるのに。残念だったな。「google 翻訳 ブックマークレット」とかで検索するとブックマークレットが出てくる。それで頑張れ。後はAppleに翻訳機能をつけろと訴えろ。まぁ英語への翻訳機能は既についてるみたいだし、日本語への翻訳機能もそのうち着くんじゃねぇの?しらんけど。
次にYoutube、これは自動認識した音声を字幕にしてくれてて、字幕があったらそれを各国語に自動翻訳してくれてる。なので字幕を表示しろ。それで言ってる事はわかるようになる場合が結構ある。ただ、音声自動認識の精度はあんまりよくないし、それを自動翻訳したものになるともはや何を言ってるかわからんようになることも多いな。これはGoogleに頑張ってもらいたいところだ。なお、Chrome なら CaptionSpeaker っていう Extension でその字幕を読み上げて貰えるようにできる。どうせ外国語は聞いてないから音は機械音声でいいぞって奴はこれを使え。ただこの Extension、アイコンを表示するようにしてON/OFFを手軽にできるようにしておかないと使い物にならんのでその辺りとかの設定項目は十分確認しておけ。
次にTwitter、外国語のTweetが流れてきたらそのTweetを開くと「このTweetを翻訳」ってボタンが出てくるからそれを押せ。いちいちTweetを開かないと駄目なのがイケてないがまぁ読める。絵や動画は残念だったな。あぁ、動画の場合はYoutubeにリンクが張ってあったらそっちで見れば字幕が出せるかもしれんな。
それで、機械翻訳は英語だけでなく各国語に対応しているのがほとんどなので、英語に限らず中国語だろうがドイツ語だろうがフランス語だろうがまぁだいたい何でも読めるようになる。外国語を一つづつ勉強するのがアホらしくなるくらいだ。それで、最近では日本のVTuberが中国のbilibili動画で配信してたりする時に自動翻訳を使って日本語で発話したものをテロップで中国語として流してたりするんだが、あれも大概イケてない翻訳になってるけど受け入れられてるようにも見えなくもないだろ。てことは、意思疎通ができれば十分という領域は結構広いんじゃねぇのかな。で、機械翻訳はその裾野辺りをだいたいカバーできるようになった。本当に良い時代になったもんだ。つまり、自分が読むだけでなく誰か他の相手に対して意思を伝える時だとしても、機械翻訳だって断っておけばちゃんと配慮してくれる時代になったんだよ。なので遠慮なくGoogle翻訳やDeepL翻訳といった機械翻訳サービスを使っていけ。ただ、「機械翻訳なのでニュアンス変わってるかもしれん」という断りを入れるのは忘れるなよ。知らない言語に翻訳した場合は特にだ。約束だぞ。
でまぁ、偉そうな事を色々言ったが他にも色々便利な機械翻訳系の仕組みはあるだろう。そういうのを知ってるやつはブコメやトラバで自慢してくれ。頼んだぞ。