IE6 ⇒ IE8 ⇒ IE6 で JavaScriptが動かなくなった
Windows XP SP3(IE6) + IEDT な環境 に IE8 をインストールしアンインストールしたら、IE6でJavaScript(JScript)が動かなくなりました。インターネット/イントラネットはOKで、ローカルゾーン(file:///, c:\...)がNGです。
# IEDT: IE Developer Toolbar
メニューの[ツール]-[インターネットオプション]-[セキュリティ]タブ-[レベルのカスタマイズ]-[スクリプト]-[アクティブスクリプト]を[有効にする]or[ダイアログを表示する]にしても無反応です。
IE8β や IE8RC でもインストーラー周りに致命的な問題を抱えたままリリースされていたりしたので(うっかりやってしまうとOS再インストールとか)、ちょっと困ってます。
追記: その後、IE7をインストール ⇒ IE8をインストール と順番に試してみたのですが、IE6 だけではなく、IE7, IE8 などでも、ローカルゾーンで JavaScript が動きませんでした。OSの再インストールが手っ取り早いのかもしれないなぁ…
念のため、IE上で全てのゾーン(インターネット, ローカル イントラネット, 信頼済みサイト, 制限付きサイト)で、[アクティブスクリプト]を[有効にする]ってやってもダメでした。
OS再インストールの前に IE6SP1 を入れなおしてみようとしたら「最新版が入ってるからダメ」と出てきて上書インストールできません。
気になるのは、IEDT の [Disable] - [Script] に見慣れない横棒(-) が付いてること。
レジストリアクセスをスパイするツール(Regmon.exe とか)で、どこを見てるのか調べれば何とかなりそうな気がするけど、なんだかな〜と。
追記の追記: IE6と、IEDTのレジストリアクセスをスパイしてみました。
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1400 がインターネットゾーン(http://example.com/...)の [アクティブスクリプト] に該当するらしい
ダイアログ | 無効 | 有効 | (無効な値) | |
1400 | 0x1 | 0x3 | 0x0 | 0x2 |
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\2\1400 が信頼済みサイトゾーンの設定らしい
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1\1400 がローカル イントラネットゾーン(http://localhost, http://192.168.0.x, ...)の設定らしい
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1400 がローカルゾーン(file:///..., c:\...)の設定らしく、0x3(無効)になっていた
- この値を 0x0(有効) に上書し、IE6 を再起動すると、JavaScriptが使える状態に復帰した(はぁと)
- IEDT が立ち上がっている状態でレジストリの値を 0x0 に修正しても、 IEDT が 0x3 に上書してしまうようなので(IEDTを落としてから上書すれば大丈夫)、どうやら IEDT をインストールしていることが、このような状態に陥ることに関与しているようだ
- この値を 0x0(有効) に上書し、IE6 を再起動すると、JavaScriptが使える状態に復帰した(はぁと)
OSの再インストールはしないですみましたよ。簡単に回避できる類のトラブルで良かった良かった。
- 今回はうまく回復できたけど、Windows XP(SP3) + IE6 + IEDT な環境に IE8 を入れる場合は、先に IEDT をアンインストールすると良いかもね
- IE8 には標準の開発ツールがあるので、どうせ IEDT は無効化されてしまう
- IEDT の見慣れない横棒(-) は いつも表示されてるので、気のせいだったみたい
問題解決後に見つけた資料
- http://support.microsoft.com/kb/833633/ja ローカルコンピュータゾーン は隠し設定なので、レジストリを直接いじらないと変更できないらしい ⇒ なぜか書き換えられたのでこんな事態になったと
- Windows のインターネットの設定が問題なので、IE6の再インストールやOSの復旧インストールでもだめだったぽい。