我得到回來在IE8以下錯誤:錯誤在IE8的網站使用Backbone.js的W/Require.js
消息:預期的對象行: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
消息: '放空' 爲空或不是對象行: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和2.0.6 Require.js。
1 idea:你能確認jquery正在被下載嗎? (它看起來像缺少錯誤)。 – WiredPrairie 2013-02-15 01:27:38
'app'路徑的定義除非是你的/ root/app? – adrian 2013-02-15 03:19:26
從我看到jQuery被加載。是的,它是根應用程序。 – Valjas 2013-02-15 19:26:16