2006年1月21日土曜日

「快投乱打な雑記帳」はSafari対応です(笑)

 ウェブリブログの掟破りな3列表示を実現している「快投乱打な雑記帳」ですが、シス卿から「Safariでみると、ぐっちゃぐちゃです^^;」とお叱りを受け、急遽Safari対応にしました(爆)

 シス卿、ご協力ありがとうございましたm(__)m

 種明かしをすると、JavaScriptでオブジェクト(簡単に言うとIDという要素が埋め込まれたDIVタグです)の配置を制御して(いわゆるDHTMLというテクニックです)3列表示を実現しているんですが、SafariをDHTMLが有効なブラウザと認識していなかったのです。

 一応Safariのレンダリングエンジンの仕様はFirefox(Mozilla)のGeckoエンジンと同一ということは理解していましたので、Mozilla用のスクリプトを適応させてみたところうまく表示できたようです(なお、Operaには対応しています)。

 厳密に言うと、FirefoxもSafariも標準規格W3Cに準拠しているので、同じJavaScriptの関数を使用して同じ結果が得られるということです。

 ところで、シス卿からSafariのレンダリングエンジンはKHTMLだとの指摘がありました。

KHTML!!


・・・なんじゃそりゃ(嘘

 KDEのレンダリングエンジンなら私の守備範囲じゃないですかぁ!
 というわけで、確認してなかったんだけどKHTMLの本家ブラウザKonquerorでどう見えるかやってみた(普通はKDEでもFirefoxを使う)。結果は、
「CSS編集用」そのまんま(笑)


 これは、筆者のサイトに限らず、CSS編集用を使って独自デザインにしているサイトは全部「CSS編集用」のプレーンな表示になるようです。

 Konquerorってリンクするスタイルシートの数に制限があったり、動的にJavaScriptを読み込んだりできないのかも知れないですね。
 Safariに出来てKonquerorに出来ないということは、筆者のKDE環境がVer.3.3という古いバージョン(Debianは更新が遅い)のせいかも知れませんが。

 もし、当サイトがぐちゃぐちゃに表示される方がいらっしゃいましたら、遠慮なく当ページにコメントしてください。
 あ、中途半端にJavaScriptが動くPDAとかはダメです。あきらめて携帯用ページで読んでくださいね(笑)

【追記】
 シス卿に確認したところ、SafariはレンダリングエンジンとしてGeckoを偽装していました。そういうことならUserAgentがGeckoかどうかで、ブラウザを類別してスクリプトを実行することが可能ですね。

 しかし、最近「偽装」と言うと悪いイメージが^^;





Apple Mac mini (1.42GHz, 80G, 512, Combo, AM, BT, E) [M9687J/B]

2 件のコメント:

  1. おおおお、半分位しかわからねぇ(笑)
    でも、Safariが、Mozillaと同じイメージで作っておけば問題ないってことですね。
    まあ、とりあえず、対応できてよかったですね(^^)

    返信削除
  2. さとし@快投乱打2006年1月21日 9:36

    Darth Alexiosさん>
    HTMLやCSS、JavaScript等の仕様は以前はNNも独自拡張や、標準規格に準拠していない部分があったんですが、KDEやGeckoのように基本的にオープンソースで開発するようになってからは
    互換性(というか標準規格準拠)を重視するようになりましたね。
    描画速度のような性能差では競ってるようですが。

    返信削除