まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary

2009/06/03(水)adiary Ver2.08β1公開情報

Ver2.07のバグフィック版です。IE8への対応修正がメインになります。

下記変更点について、IE8等における動作テストをしていただけると助かります(IE8以外のブラウザで悪影響がないかなど)。

変更点

  • IE8に対して標準準拠させるmetaタグを出力するようにしました。
  • IEの標準準拠モードにおいて、リサイズフォームの挙動がおかしかったので修正しました。
  • 【fix】CSSの@charset宣言の書式が厳格でなかったので修正しました。(IE8での"≫"の文字化けの原因)
  • 【fix】menu 画面でタグ閉じ忘れやクラス指定ミスがあったため修正しました。
  • アルバムのファイル選択欄<input type="file">で、ファイル名を直接入力できなくなっているIE8における仕様変更(Fx等ではこれが標準)をJavaScriptで追加した場合は直接入力できるという言う謎の仕様(?)を利用して切り抜ける細工しました。*1

今回の変更に関する参考資料/IE8のメモ

*1 : あまり褒められる実装ではありませんが、直接入力したい根強い要望があるようなので。

2009/06/02(火)IE8のメモ+バグメモ

adiaryをIE8(IE8モードの標準準拠時)に対応させたときのメモ。

IEモードスイッチを標準準拠にする

DOCTYPEレンダリングモード以外に、IE6/7互換設定を一切無視して*1IE8以降の標準でレンダリングさせる。

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

*1 : クライアント側でIE6互換と指定してもそれを無視する

HTTP_USER_AGENT

IE8ならば本来、

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)

となるはずですが、IE8側で例のIE7互換性設定がされていると(厄介なことにイントラネットでは標準でオン)、

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0)

となる。仕方が無いので「Trident/4.0」を見てIE8と判別する。

CSSの@charset宣言

CSSの @charset宣言 は必ず1行目に書く必要がありますが、IE8の@charsetは仕様に厳格でないといけないようです。

@charset "EUC-JP"

このとき「@charset」と「"EUC-JP"」の間は半角スペース1個でないとIE8は認識しません。TABや半角スペース2個以上では認識しません

ちなみにこのIE8の実装が正しい動作のようです

input type="file"で直接入力できない

Firefox等では以前より直接入力できなかったのですが、IE8でもこれができなくなりました。テキストボックスがグレーアウトします。

MSによると

歴史的に見て、HTML の ファイル アップロード コントロール (input type=file) はかなりの数の公開された脆弱性の温床であり続けました。この問題を解決するため、このコントロールの動作について二つの変更を加えました。

ユーザーの入力するローカルのファイル パスをキーストロークの監視によって盗む攻撃を防ぐため、ファイル パスの編集ボックスを読み取り専用としました。ファイルをアップロードする場合、ファイルの参照ダイアログを利用して、ファイルを指定する必要があります。

ついでにファイルのパスを送る病(これは設定できる)も変更されたようです。

input_type_file.png

フォームのtextareaが勝手にスクロールする

IE8において大きめの textarea の挙動がおかしい。

  • 右のスクロールバーが中間(一番上や一番下以外)の位置にある。
  • スクロールバー付近か行をまたがって入力されるなど、文字が多めに入力されている状態である。

そのとき、特定の行で文字を入力すると、未確定状態・確定状態に関わらず文字を入力するごとにスクロールバーが勝手に移動するという謎のバグがあります。

ie8_textarea_bug01.png
 
ie8_textarea_bug02.png

さらに、スタイルでline-heightが100%より大きく指定されていると、1文字入力するごとに、スクロールバーがガクガク上下に移動し、大変に使いにくくなります。

回避策は不明(CSSをoffにしても発生します)間違え。詳しい情報が分かりましたら、コメントでもTBでもお知らせ願えると助かります。

追記 2009/06/17

position:absolute

にしてあげると問題はおきない模様。どうも1文字入力するごとにオブジェクトの位置計算ルーチンか何かが走っているらしく、その辺の計算が重くなってくるとバグる模様。position:absolute ってわけにもいかないしなあ。

さらに追記。 2010/10/15

position:absolute で回避する技が(アップデートで)いつの間にか使えなくなってました。IEがabsoluteを正しく解釈して、absoluteでレンダリングされるのでほかの表示が崩れる。

substr(-1)の結果が正しくない 2014/08/23

IE8では、"abcd".substr(-1)をすると"abcd"が返ってきます。(正しくは"d"です)

文字列の最後の文字を判定する際によく使う方法なので、かなり厄介なバグです。

2009/05/09(土)adiary Ver2.07 リリース情報

Ver2.06のバグフィック版です。

ダウンロードはこちらから

内容はRC2版と同一です。RC版を動作テスト頂いたmatuさん、nasanoさん他みなさん、本当にありがとうございました。

Ver2.06→Ver2.07の変更点

  • 【携帯】コメントの表示画面を分離しました。コメント一覧画面を追加しました。
  • 【fix】CSSに問題があり、インポート時の重要なオプション等が表示されていなかった問題を修正しました。(参考
  • 【fix】IE6+UTF-8版の組み合わせでJavaScriptエラーが出る問題に対応しました。([ml:users:304:Thanks to K. Nagano])
  • 【fix】Ver2.04ごろから、JavaScriptなしでコメントもTBもできなくなっていたため修正しました。([ml:users:308:Thanks to 浅野])
  • 【fix】【携帯】phone_sjis時の分類検索などが全部おかしなことになっていたため修正しました。
  • 【fix】【アルバム】ファイル名に"%"を含むファイルをアップロードするとおかしなことになる問題を修正しました。
  • 【fix】【アルバム】ファイル名に漢字等が含まれるとフォルダを移動できない問題を修正しました。

RC2

  • 【fix】ウィンドウリサイズ時にフォームリサイズが正しく初期化されてなかった不具合を修正。
  • 【fix】テキストボックスの縦方向リサイズが許可されていたので修正。(Thanks to nasano)
  • 【fix】携帯表示で日記一覧表示画面を間違えて破壊していた問題を修正しました。(Thanks to matu
  • 【fix】プライベート日記モードでも、テーマが適用されてしまうバグを修正。

Version2.00(β含む)以降からの乗り換え

  • そのまま上書きしてください。
  • Ver2.05以前の場合、uploader.conf.cgi をサンプルから再生成してください。

なおVer2.06よりアルバムシステム関連のJavaScriptの置き場が変更になっていますので、紛らわしい場合は theme/*.js を消してから上書きしてください。

Version1.44以前(C73/2.00α含む)以前からの乗り換え

Version2.00への移行処理を先に行ってください。

2009/04/22(水)IE + UTF-8版での問題 (adiary Ver2.06)

adiary 2.06のUTF-8版使用時、IEでJavaScriptエラーが起こります。

JavaScript文字コードとHTML文字コードの一致させないと問題が起こるIEが原因です。念のため次のファイルの文字コードを UTF-8 に置き換えてください。

theme/resizeform.js

文字コード変換がよくわからないという人は、以下のファイルを解凍して上書きしてください。

2009/03/19(木)adiary Ver2.06 リリース情報

Ver2.04(Ver2.05/C76)のバグフィック版です。

Ver2.05(一般非公開版)で大幅に強化されたアルバムシステムを内包しています。

ダウンロードはこちらから

3/28付でRC2をリリース版としました。

Ver2.04→Ver2.06の変更点

  • アルバムシステムを更新しました。画面上でDrag&Dropするとファイルを移動できます*1
  • アップローダ/アルバムの拡張子チェックで、".tar.gz" の"tar"ような中間の拡張子も確認するようにしました。従来の最後の拡張子だけの確認では、特殊な設定がされたサーバを第3者に開放している場合(パーミッションを無視してcgiを実行可能なサーバ)、セキュリティーホールになることがあります。
  • 【fix】[color:red:詳細は[http://adiayr.org/:ココ]をクリック!]といったタグ表記が正しく処理されないバグを修正しました。(Thanks to Keroberos / 江原)
  • これに関連して、バグ修正のほか、タグ置換記法で引数の数を例えば 2 と指定したとき、4つの要素があれば1要素と3要素に分割するよう仕様変更しました。例えば[color:red:123:456]は従来は「123」と表示されていましたが、今後は「123:456」と表示されます。
  • 【fix】月別記事一覧表示に関するバグを修正しました。(Thanks to ひとぅ*2
  • 「ログイン状態を保持する」の文字をクリックしたときもチェックボックスが反応するようにしました。([ml:users:280:Thanks to いわい])
  • 引用記法>>~<<のURL指定に、key/id 記法が使用できるようにしました。
  • 【RC2以降】アルバムの閉じる/開く設定を効くようにしました。uploader.conf.cgi を再生成してください。(Thanks to ひとぅ
  • 【RC2以降】携帯画面表示での細かい不具合をいくつか修正しました。また、検索結果画面で「次」に送れるようにしました。([ml:users:286:Thanks to ひとぅ])

*1 : Ver2.05にあったフォルダ移動バグは修正されています

*2 : 月別表示は常に全部表示するものっていうわけのわからん思い込み(旧仕様)で見落としたバグでした……。

Version2.00(β含む)以降からの乗り換え

  • 上書き後、uploader.conf.cgi を新しいサンプルから作り直してください。基本的には変更しなくて良いでしょう。(Thanks to 浅学少識日記帳

なおアルバムシステム関連のJavaScriptの置き場が変更になっていますので、紛らわしい場合は theme/*.js を消してから上書きしてください。

Version1.44以前(C73/2.00α含む)以前からの乗り換え

Version2.00への移行処理を先に行ってください。