3

この質問は SuperUser に属している可能性がありますが、とにかくここで質問してみます。一部の Web 開発者がこの奇妙な動作に遭遇した可能性があると私は信じているからです。


VirtualBox で IE8/winXP の互換性についてサイトをテストすると、 URL$ is undefinedに解決される相対パスで参照すると、jQuery (および jQuery UI) が含まれていないことが原因で、奇妙な問題が発生します。file:///サイズが大きすぎる (200KB 以上) ためと思われます。

これらの 2 つの大きなファイルへのリンクを 1 つに置き換えるだけhttp://で、問題は解決しました。

しかし、ここで質問があります。なぜこれが起こったのですか?

それは設定ミスですか?バグ?既知の設計上の決定?


詳細:

  • バーチャルボックス 4.1.8
  • ホスト OS: win7 64 ビット、ゲスト OS: XP SP3 32 ビット
  • ゲストの追加がインストールされ、ページが VB 共有フォルダーから起動されました
  • バグはすべてのブラウザで明らかになりました(セキュリティ設定を無視するオペラでも)
  • つまり、構成はデフォルトです
  • スクリプトは次のように含まれていました<script type="text/javascript" src="js/libs/jquery/jquery-1.7.2.js">
  • 正確なサイズ制限は差し引かれませんでした。
4

1 に答える 1

1

最初の質問: この HTML ファイルをロードするときに、IE はどのゾーンを使用しますか? 「マイ コンピュータ」や「ローカル イントラネット」などの IE ウィンドウの右下を見てください。この問題は他のブラウザーでも発生しますが、IE が共有フォルダーをどのように認識しているかを知りたいです。

これは、VirtualBox がおかしいことをしているというよりも、ブラウザの問題のように思えます。最近の IE は、さまざまな程度の他のブラウザと同様に、file:// URI についてかなり制限的です...

問題のページで他の .js ファイルが正常に読み込まれるか、それともブロックされているか? はるかに小さい (v1.3.2 のような) jQuery の古いバージョンはどうですか?

とにかく、Web サーバーからではなく、ファイル共有からそれらをロードしている何らかの理由がありますか? すべてのファイルを共有ドライブからゲストの c:\ ドライブにコピーしても、同じ結果が得られますか?

VirtualBox 4.1.12 へのアップグレードはどうですか? 違いがあるとは思えませんが、試してみる価値はあります。

最後に考えたのは、jQuery には、IE (およびおそらく他のもの) をトリガーしてスクリプトをブロックする可能性のある呼び出しがいくつかあるということです。特に、new ActiveXObject. 小さな .js ファイルを作成して、それを問題として突き止めてみてください。これらの同じ行に沿って-ガベージを作成するとどうなりますか?正当な.jsファイルは大きいですが-400Kのようなものを言います:

var a = "... really, really long string";
var b = "... another really long string";
...
于 2012-04-13T23:24:30.773 に答える