Yahoo!ブックマークの表示をW3C XHTML1.0 validにする

2007/06/15 金曜日 2:38 投稿者 zon

Yahoo!検索結果Yahoo!ブックマークの登録数が表示されるようになってます。

Yahoo!検索 スタッフブログの記事に書かれているYahoo!検索結果にブックマーク登録人数表示を開始!の内容を読む限りでは、Yahoo!の検索結果に直接的に影響があるようなニュアンスは読み取れませんでしたが、間接的なSEOの効果は考えられるので、利用するサイト運営者は増えるのではないかと思います。

Yahoo!ブックマークでは、便利ツールのブログパーツとして「Yahoo!ブックマークに登録」リンクとブックマーク人数表示リンクが用意されていて、HTMLコードをコピーして、ソースに貼り付ければいいようになっているのですが、これがXHTML1.0に準拠していないので、そのまま貼ってしまうと The W3C Markup Validation Servic でエラーが出てしまいます。

これに手を加えて使うことにしました。

「Yahoo!ブックマークに登録」リンク

Yahoo!ブックマークに登録のコードに関しては、Yahoo!ブックマークに登録と同様に<img>タグのタグを閉じる部分に/を入れておくことと、&を&amp;に変更しておくこと。コードは下記の通りです。

<img src="http://i.yimg.jp/images/sicons/ybm16.gif" width="16" height="16" alt="Yahoo!ブックマークに登録" /> <a href="javascript:void window.open('http://bookmarks.yahoo.co.jp/bookmarklet/showpopup?t='+encodeURIComponent(document.title)+'&amp;u='+encodeURIComponent(window.location.href)+'&amp;opener=bm&amp;ei=UTF-8','popup','width=550px,height=480px,status=1,location=0,resizable=1,scrollbars=0,left=100,top=50',0);">Yahoo!ブックマークに登録</a>

ブックマーク人数表示リンク

ブックマーク人数表示のコードに関しては、<img>タグのタグを閉じる部分に/を入れておくことと、もうひとつが厄介で、リンク先と人数を表示するところまでが可変で、「人が登録」までが固定なので、<a>と人数までをJavaScriptで読み込んで、後の部分をそのまま記述していて、XHTML上では、</a>が突然出現して、<a>がない状態になっています。「人が登録</a>」の部分まで読み込んでくれるようにしてくれてもいいと思うのですが。それだけのデータ送信量すら節約したいのでしょうか?まぁ、利用者が半端な数じゃなさそうなので、膨大な量になりそうですけど。

良い対処方法が思い浮かばず、仕方がないので自分で「人が登録</a>」を読み込むJavaScriptを用意しました。

jsファイルに以下のコードを記述してください。

document.write('人が登録</a>');

上記のjsファイルをサーバの任意の場所に設置して、下記のコードを貼り付ければOKです。

<img src="http://i.yimg.jp/images/ybm/icons/view_url.gif" width="16" height="16" alt="Yahoo!ブックマークでこのサイトを登録している人数" /> <script type="text/javascript" src="http://num.bookmarks.yahoo.co.jp/ybmno.php"></script><script type="text/javascript" src="jsファイルのパス"></script>

Yahoo!に限らず、ブログパーツ等で用意されているコードはXHTMLに準拠していないものが多いので困ります。
HTMLの方が需要は多いかもしれないけど、W3Cに準拠してるかどうか気にしている人はXHTMLでコーディングしている人の方が多いと思うので、XHTMLにあわせて提供したほうがいいと思うのですが。

XHMTL valid でなくなるので、(Yahoo!に限らず)ブログパーツやAPIを使うのをやめたという人って結構多いと思うのですがどうですか?

Google AJAX Search API のJSONデータを取得する

2007/06/06 水曜日 17:42 投稿者 zon

Google Code で提供されている API で Google検索結果を取得できる Google AJAX Search API ですが、検索結果をDBにキャッシュすれば、Google のサーバにも余計な負荷がかからないし、1日あたりのクエリ発行回数に制限があるはず(※)なので、その辺の問題を解消するためにも、どのようにすれば実装可能か考えていました。

※クエリ発行回数に制限については、2005年あたりの書かれている記事は1000回/1日とあるのですが、最近の記事の解説では見つけれないし、公式の利用規約にもそれらしい記述が見つけれませんでした。

正直、AJAX は用意されているAPIをそのまま実装する程度のことしかしたことがないので、なにをどこまで出来るとか突っ込んだことはよく分からないのですが以下の記事の見た感じ、JSONPというのを使えば簡単に出来るのではないかと気がしました。

次の様なURLをリクエストすればよいみたいです。詳しい解説は上記のリンク先を参照してください。

http://www.google.com/uds/GwebSearch?callback=handleWebResults&context=0&lstkp=0&rsz=10&hl=ja&q=%E4%BB%8A%E6%B2%BB%E5%B8%82&key=ABQIAAAA8sIaWMGpb7cFeAQjzNmTQhSgxx03qR9JK3UItoDYsuRdbT1gGBQC--KhlY0sbIlKGaHsZnC8e2m57A&v=1.0

JSONP というのはよく分かっていないけど、JSONは要求したデータを配列で返してくれるってイメージで、実際に参考サイトの通りのURLを叩いたら配列風のデータが返ってきたので問題ないでしょう。

使えれば問題ないのであまり突っ込んで調べないけど、JSONPは以下の記事に「JSONデータを括弧でくくった上でこっちが指定した文字列を頭につけて返してね?」と書かれているので多分間違いない。と思う。

zontheworld HTML convert time: 0.114 sec. ( Login )