4

現在のプロジェクトで Require.js を使用しています。

そして、私はRequire変数を使用してRequire.js構成をロードしていました

require = {
  paths: {
    backbone: "libs/backbone-min",
    bootstrap: "libs/bootstrap.min",
    jquery: "libs/jquery-1.7.2.min",
    underscore: "libs/underscore-min",
    order: "plugins/order",
    text: "plugins/text",
    use: "plugins/use"
  }
};
<script src="http://local.gungroo.com/app/js/config.js"></script>

これはすべてのブラウザでうまくいきました。

最近、私はCoffescriptに切り替えましたが、生成されたコードは次のようなものです

(function() {
  window.require = {
    paths: {
      backbone: "libs/backbone-min",
      bootstrap: "libs/bootstrap.min",
      jquery: "libs/jquery-1.7.2.min",
      underscore: "libs/underscore-min",
      order: "plugins/order",
      text: "plugins/text",
      use: "plugins/use"
    }
  };

}).call(this);

しかし、2 つ目は IE8 で壊れます。

IE8 は変数 'var require' と 'window.require' を別々に扱いますか?

4

2 に答える 2

4

構成オプションに関するrequirejsドキュメントから:

注: var require = {} を使用し、window.require = {} を使用しないことをお勧めします。IE では正しく動作しません。

この問題は、こちらの github の requirejs プロジェクトに報告されました。イシュー レポーター (dtanabe) は、問題を説明するいくつかのサンプル HTML とスクリプトを提供しました。そのサンプル コードを含むフィドルを作成しましたIE 9 の場合、他のブラウザー (Chrome、Firefox など) と同じように動作しますが、開発者ツールでドキュメント モードを IE 8 に変更すると、問題が発生しました。この問題に対応して、jrburke (James Burke) は、私が上で言及したドキュメントを追加しました。

于 2012-05-17T21:22:52.453 に答える
0

ウェブブラウザで:

window.require = 'herp';
// is equivalent to
require = 'derp';

windowトップレベルであること。

于 2012-05-17T09:49:02.103 に答える