MovableType上でSyntaxHighlighter等を動かす場合, onLoad に手を加えないといけません. その方法についてちょっと調べてみましたが, 見つからなかったのでメモしておきます.
<body onload="...と書くにしても, bodyはグローバルテンプレートのヘッダにあります. afternooncafe.jpでは全部のテンプレートを書き直しているので問題はないのですが, 標準テンプレートを使っている所では難しいでしょう. mtInitを書きかえるという方法も見つけましたが, MTが用意しているScriptはメンテナンスの観点から変更したくありません.
解決方法はすごく簡単で, mtAttachEventを使えば良いのです. SyntaxHighlighter 2.0の例でいくと,
こんな感じです. HTMLヘッダに要素を追加したい場合, html_headerに値を追加すれば良いので, 以下の文をエントリアーカイブのテンプレートにでも入れておけば問題ありません.
mtAttachEventの中身ですが, 以下の様なaddEventListener (と IE用にattachEvent)かと思っていました.
しかしながら, 実際のソース(mt.jsの中にあります)を見ると微妙に異なっていました. attachEventとaddEventListenerの仕様の違いを気にしたからでしょうか…
0 件のコメント:
コメントを投稿