シェアする

  • このエントリーをはてなブックマークに追加

[FireFox]Greasemonkeyのスクリプトを書いてみた

概要

最近Javascriptを使いこなせるようになりたいと一生懸命なわたくしが、Greasemonkeyのユーザスクリプト作成にチャレンジしてみました。

DesignFeedDatabaseというサイトをご存知でしょうか?
webデザインに関する人気記事を(恐らく機械的に)収集して配信しているサイトなのですが、普段チェックしていないサイトなんかも見つけることができるので、このサイトのフィードはとても重宝しているのですが…

残念なことに、feedから記事を開くとアフィリエイト満載のリンクページが開いて、そのページから元記事リンクをわざわざクリックしなければ目的のページにたどり着けないんですよね。まあサイト製作者の立場で考えれば当たり前の作りなんですが。

開いたページにコリスさんや百式さん、MOONGIFTさんやMozilla Re-Mixのようにちゃんとレビューや感想、使い方などそのページ特有のコンテンツがあればその記事はとても有益なものになるけれど、フィードから取得したタイトルと本文があってその周りにこれでもかと広告が表示されているページなんて…これは本当に個人的な意見ですけれど、そんなページには何の価値も無いと思うわけです*[1] 。結局は元記事が読みたいわけですから。

当然ですがDesignFeedDatabase製作者の方のおかげで自分だけでは探せなかった素晴らしい記事に出会うことができるわけで、そのことに大変感謝しておりますし、製作者の方はもちろんご自分のサイトをどのように作ってもいいし、そうするべきだと思います。サイトを作り運営するには労力だってコストだってかかるわけですからね。

ただ、どうしてもその不便さを解消したい。解消するための手段がブラウザにはあることを知っていましたので、DesignFeedDatabaseさんの記事から元記事のurlを取得して*[2] そのurlにリダイレクトするGreasemonkeyのユーザスクリプトを書きました。
DesignFeedDatabaseさんの迷惑になるといけませんので僕の作ったスクリプトは公開しませんが、Greasemonkeyでできることの紹介や、ユーザスクリプトを作るうえでのヒントになればと思い記事にします。前置きが長くてすみません。

参考にしたサイト

Greasemonkey – Mozilla Firefox まとめサイト
FireFoxに関する情報が網羅されているいわずと知れたFireFoxユーザ必読サイトですね。
スクリプトの作成には、まとめサイトの管理人様が作ってくださったTable of contents [Dive Into Greasemonkey]日本語訳マニュアルを使用させていただきました。

スクリプトを作るうえでのヒント

今回僕が作ったスクリプトの目的は、

DesignFeedDatabaseさんのフィード記事?*[3] の元記事のリンクを取得して、そのリンクにリダイレクトする

というものです。

ソースは前述した理由で公開しませんが、このスクリプトを作るうえでのヒントを簡単にメモしておきます。

まずはフィード記事のどこに元記事のリンクがあるかを把握しなくてはなりませんね。
例えば「topicTitle」というクラス属性をもったh3タグの中に元記事へのリンクaタグがあるのであれば、これを取得してあげると。
僕はjsに関してはド素人なのでいい方法ではないかも知れませんが、「document.getElementsByTagName」で「h3」を指定して、そこで取得したオブジェクトをfor(i=0; i < object.length; i++)でまわして、クラス名が「topicTitle」だったらその「firstChild」から「href」を取得するという方法をとりました。
それを「location.href=%url%」してあげればリダイレクトしますよね。
あとはこれを「window.setTimeout」の中の関数として書いてあげればスクリプトの完成です。
文字ばっかりでわかりにくいと思いますが、マニュアルと合わせて読んでいただければ僕が書いたユーザスクリプトと同じものが必ず作れると思いますので、頑張ってみてください。

僕の戯言

本当に”ざれごと”ですが、よかったら聞いてください。

今回記事の話題にさせていただいた「DesignFeedDatabase」というサイトですが、僕は大変重宝してますし、このサイトの存在に感謝しています。このサイトのおかげでいい記事にめぐり合えたってことが何度もありますから。
でも大変僭越ながら僕の考えを書かせていただくと、「製作者の利益の為に利用者の利便性が損なわれた場合に、その不便を解消する方法があるなら解消してしまう」と思うんですよね。正直利用者にとっては自分の利益が最優先で製作者の利益は2のつぎ、3のつぎ、もしくはもっと後だと思うので。

たとえば「ポップアップブロック」はその最たる例ですよね。
サイト製作者*[4] の利益の為にポップアップ広告を出すんだけど、利用者にとっては邪魔以外の何者でもない。じゃあその不便を解消する機能を作っちゃおう。それが自然の流れなのかなと。

神田昌典さんのマーケティング本からの引用ですが、
動物は2つの感情で動いてると。ひとつは「苦痛から逃げる」もうひとつは「快楽を求める」んだそうです。
僕もウェブサービスを作ったりしてますが、みなさんのためになる(快楽)サービスで人を集めつつ、なるべく不便や面倒(苦痛)をなくすものを作りたいと思います。もちろんその上でそれなりの利益が僕にもちゃんと残るように。

結局のところこのバランスをとらないと、誰にも使ってもらえなかったり、使ってもすぐ飽きられちゃったり、僕のように製作者の利益を削ぐかたちで苦痛を解消しちゃったりという不幸な事態になっちゃったりすると思うんです。

戯言な上に余談かつ生意気な意見ですが、DesignFeedDatabaseさんももうひと手間かけると化けそうな気がするんですよ。ウェブデザインに係わる人がたくさん見てるわけだから、その人たちをうまく囲い込むような仕組みを作る形で。
check*padみたいに簡単にユーザ登録できて、iddyみたいにmyページみたいなのが作れて、デザイナー同士コミュニケーションが取れたり、プロフィールで自分の得意分野をアピールして仕事の依頼を受け付けたりだとか。フィードのお気に入りをブックマークレットで簡単に登録できるようにして*[5] myページで確認できるようにすれば、myページは自然に人の目に触れるページになるだろうから、そのページにアフィリエイトを表示させてやれば今よりも自然な形で広告を踏ませることができると思うのですが、いかがでしょう?

使いやすくしてあげることで利用者を増やす。
利用者が増えることで人目に触れるページも自動的に増えていく。
その結果広告収入もウハウハみたいな。

そりゃ作るのは大変だし、規模が大きくなるとそれだけ考えなきゃいけないことも増えるし、なにより現時点で製作者が満足な利益を得ているのであればわざわざそんな風にしなくてもいいんでしょうけどね。

でも僕はいつか、そんなウェブサービスで飯が食えたらと思うんですよね。

しょーもないざれごとでございました。なんか戯言メインみたいになっちゃったな。

  1. もちろんサービス全体をみれば有益なサイトなんですけどね []
  2. 元記事へのピュアなurlも取得できるんですが、DesignFeedDatabaseさんのサイト運営に悪影響あるといけませんし最低限のマナーとしてhttp://feed.designlinkdatabase.net/feed/redirect.aspx?url=%url%をそのまま利用しました。おそらくリンクを踏んだ数をカウントしたりすると思いますし []
  3. フィードをクリックして表示される記事 []
  4. サーバ管理者の例もありますが []
  5. はてブのパクリなんですがね^^;でもwebデザインに特化したブックマークが作られていくわけで、これはこれでいいところをついているんじゃないかと自分では思っていたり。。webデザインだけでなく、たとえば営業職専門のSNS、SBMとかもっと極端なこと言えば時計職人専門のSNS、SBMとか、面白いような気がするんですけどね。いや、日本国内に時計職人がどれだけいるかわからないけど、時計職人なら世界中でユーザ集められそうな気がするなぁ。まあきりがないのでこの辺で。 []

シェアする

  • このエントリーをはてなブックマークに追加

フォローする