我在当前项目中使用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);
但第二个在IE8中突破。
IE8是否处理变量&var; var require&#39;和&#39; window.require&#39;不同?
答案 0 :(得分:4)
注意:最好使用var require = {}并且不要使用window.require = {},它在IE中行为不正确。
此问题已报告给github here上的requirejs项目。问题记者(dtanabe)提供了一些示例html和脚本来说明问题。我创建了一个包含该示例代码的小提琴here。请注意,对于IE 9,它的工作方式与其他浏览器(例如Chrome,Firefox)相同,但当我将开发人员工具中的文档模式更改为IE 8时,问题就出现了。针对这个问题,jrburke(詹姆斯伯克)补充了我上面提到的文件。
答案 1 :(得分:0)
在网络浏览器中:
window.require = 'herp';
// is equivalent to
require = 'derp';
window
是最高级别。