adiary2.02と標準モード

adiary2.02がリリースされていたのでアップデートしました。

IE8によるアクセス時、標準準拠モードでレンダリングさせるようにしました。

Version2.02リリース情報 - adiary開発日誌

脚注によると、はてなテーマは依然として互換モードでレンダリングするそうです。

/path/to/theme/hatena/_skelton/_frame.htmlを確認すると、確かに。

<$v.compatible_mode = 1>

標準モードと互換モード

何が違うのかというと、HTMLソースを見るとDOCTYPEの宣言でdtdの指定があるかないかということになりますが、ブラウザでのレンダリングが変わったり、JavaScriptの挙動が変わったりするようです。

adiary既知の問題?

互換モードの場合、adiaryではどんな問題があるかというと、はてなテーマ利用時 - adiary開発日誌にもあるように、はてなテーマを使用しているとポップアップの表示位置がずれることがあるようです。*1

この問題はまだ対応されてないみたいです。

ただ、adiaryユーザの中には標準モードにしてこの問題に対応している方も見受けられました。

はてなテーマの中には標準モードで表示させてもOKなテーマがあるということなんでしょうね。(勝手に推測)

*1 : asin記法などで確認済み。

スクリプトで対応するなら

--- adiary.js.orig      2008-09-15 18:06:23.000000000 +0900
+++ adiary.js   2008-09-15 18:17:36.000000000 +0900
@@ -105,8 +105,8 @@
var style = div.style;
var cx; var cy;
if ( evt ) {
-               cx = evt.clientX + document.documentElement.scrollLeft;
-               cy = evt.clientY + document.documentElement.scrollTop;
+                cx = evt.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
+                cy = evt.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
} else {
cx = event.clientX + document.body.scrollLeft;
cy = event.clientY + document.body.scrollTop;

座標が取得できない場合は常に0が返されるみたいなので、||は+でも良いかもしれませんが、ベンチマーク的なところまではわかりません。