我在 index.html 文件的顶部和 main.js 中包含了modernizr / pollyfiller:
require.config({
paths : {
'jquery' : 'lib/jquery-1.10.2.min',
'jqdate' : 'lib/jquery.dateFormat-1.0',
'webshims' : 'lib/polyfiller'
},
shim : {
'lib/underscore' : {
exports : '_'
},
'lib/backbone' : {
deps : ["lib/underscore", "jquery"],
exports : 'Backbone'
},
"modernizr" : {
deps : ["jquery"],
exports : "modernizr"
},
"webshims" : {
deps : [ "jquery", "lib/modernizr-custom"],
exports: "webshims"
}
}
});
var router, vent;
require(["jquery", "lib/underscore", "lib/backbone", "app", "lib/modernizr-custom", "webshims"], function($, _, Backbone, Router, modernizr, webshims) {
$(function() {
$.webshims.setOptions('forms forms-ext', {
replaceUI : false,
waitReady : false
});
$.webshims.polyfill('forms forms-ext');
router = new Router();
vent = _.extend({}, Backbone.Events);
$.expr.cacheLength = 1;
Backbone.history.start({
});
});
});
这通常会加载正常,但是,有时看起来 webshims 在我尝试调用时没有定义:
$.webshims.setOptions('forms forms-ext', {
replaceUI : false,
waitReady : false
});
$.webshims.polyfill('forms forms-ext');
我得到错误: TypeError: $.webshims is undefined
有没有更好的方法来加载这个?
编辑 所以,我像你说的那样更新了脚本,并且不得不在路径和 shim 定义中大写 Webshims。它加载正常,但现在我收到一个错误:
Uncaught SyntaxError: Unexpected token <
在 Chrome 和
SyntaxError: syntax error
<!DOCTYPE html>
在火狐中