我在 IE8 中返回以下错误:
消息:预期对象行:27 字符:1 代码:0 URI: http ://cdn.example.com/images/example4/js/libs/jquery.backgroundSize.js
消息:'$.fn' 为空或不是对象行:8 字符:1 代码:0 URI: http ://cdn.example.com/images/example4/js/libs/jquery.waitUntilExists.js
消息:'fn' 为空或不是对象行:62 字符:73 代码:0 URI: http ://cdn.example.com/images/example4/js/libs/jquery.nicescroll.js
消息:对象预期行:34 字符:231 代码:0 URI: http ://cdn.example.com/images/example4/js/libs/backbone.js
消息:'Vent' 为空或不是对象行:19 字符:3 代码:0 URI:http ://cdn.example.com/images/example4/js/models/auth.js
我们的网站是一个使用 Backbone.js 和 Require.js 构建的 SPA,用于依赖管理。这个问题只出现在 IE8(可能还有更早的版本)上。这些文件中的每一个,除了最后一个是因为 'Vent' 扩展 Backbone.Event 引起的,都在我们的 Require.js 配置文件中创建为 Backbone.js 的垫片。
Require.js 配置:
requirejs.config({
baseUrl: 'http://cdn.staging.example.com/images/example4/js',
paths: {
underscore: './libs/underscore',
jquery: './libs/jquery',
backbone: './libs/backbone',
example: './libs/example',
blockui: './libs/jquery.blockUI',
backgroundsize: './libs/jquery.backgroundSize',
nicescroll: './libs/jquery.nicescroll',
waituntilexists: './libs/jquery.waitUntilExists',
swfobject: './libs/swfobject',
spinner: './libs/jquery.spinner'
},
//Create shims for Backbone
shim: {
'backgroundsize': {
deps: [ 'jquery'],
exports: 'backgroundsize'
},
'nicescroll': {
deps: ['jquery'],
exports: 'nicescroll'
},
'waituntilexists': {
deps: ['jquery'],
exports: 'waituntilexists'
},
'spinner': {
deps: ['jquery'],
exports: 'spinner'
},
'backbone': {
deps: [ 'underscore', 'jquery','blockui','backgroundsize','nicescroll', 'waituntilexists', 'swfobject', 'spinner'],
exports: 'Backbone'
}
}
});
requirejs(['app'],
function(App){
App.initialize();
});
任何会导致此问题的建议,我们都在使用 Backbone.js 0.9.2 和 Require.js 2.0.6。