まえがき
こんにちは、C012Nです。タイトルの通り、ちょっとしたブックマークレットを作ったので機能、使用方法、コードの共有をしようと思います。
機能
オンゲキNETの
レコード > 楽曲別レコード > ジャンル別 or キャラクター別 or レベル別
の画面で動作します。表示されている楽曲をPスコアの割合が高い順にソートし、Pスコアの隣にその割合を表示します。*1
複数回使用するとパーセンテージ表記が何度も付け足されてとんでもない長さになるため、1画面1回限りの使用をお願いします。*2


コード
以下が作成したコードです。ブックマークレットの使い方をもう知っている方はコピペして活用してみてください。不具合があれば当記事のコメントにてお知らせください。
※2025/04/30変更
javascript:(function(){const%20parent=document.querySelector(".container3");var%20songs=Array.from(parent.getElementsByClassName("basic_btn")).filter(e=>e.querySelector("form>.f_e_sb")!==null);var%20notSongs=Array.from(parent.getElementsByClassName("basic_btn")).filter(e=>e.querySelector("form>.f_e_sb")===null);songs.sort((a,b)=>{const%20pScoreA=a.querySelector("form>.f_e_sb>table>tbody>tr:nth-child(2)>td>.t_r").innerText;const%20pScoreRateA=eval(pScoreA.replace(/,/g,""));const%20pScoreB=b.querySelector("form>.f_e_sb>table>tbody>tr:nth-child(2)>td>.t_r").innerText;const%20pScoreRateB=eval(pScoreB.replace(/,/g,""));return pScoreRateB-pScoreRateA;});songs.forEach(s=>{const%20target=s.querySelector("form>.f_e_sb>table>tbody>tr:nth-child(2)>td");if(target){const%20pScoreSpan=document.createElement("platinum_high_score_rate");const%20pScore=s.querySelector("form>.f_e_sb>table>tbody>tr:nth-child(2)>td>.t_r").innerText;const%20pScoreRate=Math.floor(eval(pScore.replace(/,/g, ""))*10000)/100;pScoreSpan.textContent="=>"+pScoreRate+"%";target.appendChild(pScoreSpan);}});songs.forEach(s=>parent.appendChild(s));notSongs.forEach(s=>parent.appendChild(s));})();
ブックマークレットの使い方
そもそもブックマークレットを使ったことがない方向けに使用方法を解説します。
1. 適当なページをブックマーク
2. 1で作ったブックマークの「編集」画面へ
3. ブックマークのURLを消し、コードをペースト
これで先程説明した画面でブックマークを開こうとすると動かせます。
おすすめの使い方
レベル別の画面で使用し、次にどの曲のPスコアを狙うか考えるのに使う。
全ジャンルで使用し、Pスコアの割合が高い譜面を見てニマニマする。
既知の不具合
これはブックマークレットではなくiPhoneが悪いらしいのでSafariを使ってください。
・96.996%が97%になってしまう
四捨五入していた俺が悪いので切り捨てにしました(2025/04/30対応)
余談: chatGPTすげえ
実はこのブックマークレット、JavaScriptについて事前知識なしの状態から2,3時間で作れました。当然一つ一つ調べながら作っていてはそんなスピードで完成しませんが、最近流行りのAIサービスを使うとものすごい効率でプログラミングを勉強できます。正直驚きました。*3
あとがき
ぜひ使ってくれよな!