2012/06/16(土)XP+IE6環境にIE Collectionをインストールすると

2012/06/16 13:50 PC(全般)
Windows XP, IE6環境にUtilu IE Collectionをインストールすると、元々入っていたIE6の挙動がおかしくなる問題。

まず前提として、
・IE Collectionはインストール時にレジストリを大量にいじる(梱包している各IEインストーラの挙動次第)。
・アンインストールしてもそれを完全に元に戻さない。
・IE自体が複数バージョン同時実行することを全くケアしていない。

これだけ見ても、デフォルトで入っているIEを動かし続けたい場合、その環境に対して「導入すべきではない」。

以下のように、仮想環境にIE Collectionを導入するのが良いだろう。
Reliable Cross-Browser Testing, Part 1: Internet Explorer | Smashing Coding

しかし、導入してしまった場合どうなるか。
[発生条件]
・OS: Windows XP (SP2, SP3で確認)
・IEバージョン: IE6(IE6の複数バージョンで確認)
・Utilu IE Collection 1.7.2.1をインストール
(インストール時、オプションでIE7かIE8をチェック)

[現象]
元々入っていたIE6で、JavaScriptのwindow.open呼び出し時に、Windowが2画面開く。1枚は表示が空かつSHDocViewが無い状態で正常に動かない。アイコンも正常なIE6と異なる。その他、JS多用画面で頻繁にフリーズ・ブラクラ状態になる。

手元の環境ではIE Collectionで7or8を入れた場合に100%再現した。IE Collectionをアンインストールしても改善しない。

対処方法はかなり対処療法的手法になる。IE Collectionをアンインストールした後、レジストリエディタで以下のキーを削除。
HKEY_CLASSES_ROOT\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}	(既定)	(値の設定なし)
HKEY_CLASSES_ROOT\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32	(既定)	C:\\Program Files\\Internet Explorer\\ieproxy.dll
HKEY_CLASSES_ROOT\CLSID\{C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6}\InProcServer32	ThreadingModel	Both
要は"C90250F3-4D7D-4991-9B69-A5C5BC1C2AE6"キーごと消す。

キーの意味は各自で調べて欲しい(ごめんなさい、調べきれませんでした)。

これでIE6のwindow.open周りの挙動は本来の動きに戻る。他におかしいところがあるかもしれないが、一度入れてしまったら後の祭り。IEのIE6より新しいバージョンを入れるか、復元するか、OSの再インストールをするか…… 綺麗にする方法はそこらしかなさそうである。IEのアップデートに失敗して旧IEが動かなくなってしまったときと同じ感じである。

あ、でも綺麗なOSにIE Collection入れてレジストリパッチを作る方法はあるかな……

なお、レジストリの修正は当然自己責任で。バックアップを取ってからの実施をお勧めする(ERUNTとか、この部分だけエクスポートするとか)。
OK キャンセル 確認 その他