他のブログでも書いたけど、書くことないのでこちらでも。
最近、ニコニコ動画を見ていると、動画リンクにrefというGETパラメータがついているのですが、正直これがものすごい邪魔(例えばこんな感じ:【ニコニコ募金】東日本大震災 支援メッセージ動画 ‐ ニコニコ動画:GINZA)。
自分ははてなブックマークのChrome拡張使っているのですが、これがあるとちゃんとパラメータなしのブクマ数がわからないんですよね。
というわけで、特別なことをしているわけではないけれども、動画リンクのリファラを取り除くスクリプト書いてみた(追記:非推奨)。
if(location.hostname=="www.nicovideo.jp"){ var hr=document.querySelectorAll('a[href*="watch/"]'); var hrL = hr.length; for(var i=0; i<hrL; i++){ hr[i].href = hr[i].href.split("?")[0]; } }
上記スクリプトをコピペしたテキストファイルを保存し、拡張子『.user.js』で保存。
それを、Chromeの拡張機能ページにドラッグアンドドロップすると動くはずです。
動作としては、"www.nicovideo.jp"というドメイン内でaタグのリンク先に"watch/"が含まれていたら、そのリンクの"?"以降を除いたアドレスに置き換えるというもの。
問題点としては、ニコニコ動画内でないと動かないということと、もし万が一動画リンクにおいて大切なリファラがあればそれまで取り除いてしまうということかな。後は、動画リンク以外の"watch/"が含まれるリンクにも有効ということとかな。
実装は甘々だし、そもそもユーザースクリプトの書き方としてこれはあってるのか分かりませんが、参考までに(しょせん、自分用ですし、今のところ問題はなさそうなので)。
なお、今調べてみると、ユーザースクリプトは
(function(){ console.log("hello world"); })();
のように、"(function(){"と"})();"で囲むのが一般的だそうです・・・。
参考:ユーザースクリプトの書き方 - UCHD
参考:ChromeのUser Scriptを手抜きで書いてみた - kanonjiの日記
というわけで、書きなおしてみた。
(function(){ if(location.hostname=="www.nicovideo.jp"){ var hr=document.querySelectorAll('a[href*="watch/"]'); var hrL = hr.length; for(var i=0; i<hrL; i++){ hr[i].href = hr[i].href.split("?")[0]; } } })();
即時関数というらしい。名前衝突の回避用なんだとか。
if文の中での変数宣言も影響あったっけ? まあ、どちらにしろ書いたほうが安全ではあるか。
コメント