February 2010アーカイブ

とあるサイトでサイト内検索をGoogleカスタム検索で実装しました。ドメイン内で表示したいのでiframe、無料バージョンなので広告を上下に表示で実装しました。

ところがSafariで見るとたいてい何故か下が切れて表示されます。IEやFirefoxだと大丈夫っぽいんですけど...。

いくつかのサイトをググッてもそんなネタないしなあ...。でもiframeの高さの取得がどうもSafariだけ違うようです。広告を上下に表示しているのが原因かもしれません。右側に広告表示すれば大丈夫なのかもしれませんが、今回はコンテンツの幅が狭いのでどうしようもありません。orz

ログ見る限り、Safariのシェアは少ないので無視出来るレベルなので、無視してしまうか、高さ決め打ちで実装してしまうか悩むところです...。後者だと検索結果によっては下の空白が大きくなってしまうのが見苦しい限りなのですが...

自分の知識不足なところが露呈されてしまうのですが(笑)、同様に困っている人がいるかもしれないので記事にしておきます。

自分は今までFireworksやDreamweaverの機能拡張パッケージ(mxp)を作成する際は、Adobeが配布しているパッケージ作成用のPDFマニュアルを参考にしておりました。

そのマニュアルではUTF-8で記述するように書かれているのですが、Extension Managerで表示される名称や解説を日本語にしようとすると文字化けしてしまうため、昔の仕様であったShift-JISにして書き出しておりました。

仕様通りにUTF-8で記述したいのでどうしたものかと思っておりましたが、先日とあるタイミングでAdobeの中の人から以下の回答をいただきました。

  1. mxiの先頭にxml宣言 <?xml version="1.0" encoding="UTF-8"?>を記述する。
  2. UTF-8で書き出すときにBOM付で書き出す。→Dreamweaverでは書き出す際にチェック項目があります。

ってかマニュアルに書いてないし(笑)。

基本テキストエディタとかでmxiを書いていたら大丈夫なのかもしれませんが、自分はDreamweaverで記述していたため、UTF-8の書き出しの際にBOMのところは、今までチェックしていたことがなかったのが原因の可能性が高いです(笑)。

試したところどちらか一方を満たしていればOKなようですが、念のためこの2つには注意してmxiを作成しましょう。