はてなダイアリーのGoogle Gadget貼り付けで見つかった問題点

はてなと関係ないものもありますが、ひとまず以下。

  • コンテンツが文字化けする(IE/Safari)
  • Google Gadgetのタイトルが文字化けする(IE/Safari)
  • リロードすると表示されない(Safari)
  • そもそも表示されない(IE)

現在テストしているガジェットは、以下のようなコードで外部のJavaScriptを動的にロードしています。

var scriptE = document.createElement("script");
scriptE.setAttribute("type", "text/javascript");
scriptE.setAttribute("src", script_url);
_gel("script_container").appendChild(scriptE);

コンテンツの文字化けについては、動的にロードするJavaScript部分のキャラクターセットを明示的に指定することで解決できました。

scriptE.setAttribute("charset", "UTF-8");

タイトルの文字化けについては、Google Gadgetのタイトル指定がUTF-8の文字列をURLエンコードしてパラメータで渡されているので、キャラクターセットがEUC-JPのはてなでそのまま表示すると化ける、ということじゃないかと思ってます。
script タグの charset に UTF-8 を指定すれば直るかなと思ったんですが、これを追加すると不正な JavaScript ということで、はてなダイアリーにはねられてしまいます(「ここではスクリプトタグを使用することができません」)。

IEでの表示不具合と、Safariリロード時の問題は、こちらのコードの問題ぽいですね。

もうちょっと調べてみようと思います。