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のレジストリアクセスをスパイしてみました。

ダイアログ 無効 有効 (無効な値)
1400 0x1 0x3 0x0 0x2
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0\1400 がローカルゾーン(file:///..., c:\...)の設定らしく、0x3(無効)になっていた
    • この値を 0x0(有効) に上書し、IE6 を再起動すると、JavaScriptが使える状態に復帰した(はぁと)
      • IEDT が立ち上がっている状態でレジストリの値を 0x0 に修正しても、 IEDT が 0x3 に上書してしまうようなので(IEDTを落としてから上書すれば大丈夫)、どうやら IEDT をインストールしていることが、このような状態に陥ることに関与しているようだ


OSの再インストールはしないですみましたよ。簡単に回避できる類のトラブルで良かった良かった。

  • 今回はうまく回復できたけど、Windows XP(SP3) + IE6 + IEDT な環境に IE8 を入れる場合は、先に IEDT をアンインストールすると良いかもね
    • IE8 には標準の開発ツールがあるので、どうせ IEDT は無効化されてしまう
  • IEDT の見慣れない横棒(-) は いつも表示されてるので、気のせいだったみたい


問題解決後に見つけた資料

  • http://support.microsoft.com/kb/833633/ja ローカルコンピュータゾーン は隠し設定なので、レジストリを直接いじらないと変更できないらしい ⇒ なぜか書き換えられたのでこんな事態になったと
    • "ローカル イントラネットゾーン"(IEから設定可能) と "ローカルゾーン"(隠し設定) が別個のもので、ローカルゾーンが隠し設定ってのは分かりづらいよ。
  • Windows のインターネットの設定が問題なので、IE6の再インストールやOSの復旧インストールでもだめだったぽい。