无法使文本插件在IE中使用requirejs
Cannot get the text plugin to work with requirejs in IE
我只是无法使文本插件在Internet Explorer上使用requirejs
我得到以下错误:
SCRIPT5: Access is denied.
text.js, line 267 character 13
几秒钟后,我得到以下错误:
SCRIPT5022: Load timeout for modules: underscore,backbone,text!templates/userListTemplate.html_unnormalized2,text!templates/editUserTemplate.html_unnormalized3,text!templates/userListTemplate.html
http://requirejs.org/docs/errors.html#timeout
require.js, line 8 character 105
我在本地加载文件,脚本可以在Firefox和chrome中运行。
这是我的配置:
// file: main.js
require.config({
paths: {
"jquery" : "libs/jquery",
"underscore" : "libs/underscore",
"backbone" : "libs/backbone",
"text" : "libs/text"
},
shim: {
underscore: {
exports: '_'
},
backbone: {
deps: ["underscore", "jquery"],
exports: "Backbone"
},
text : {
exports : 'text'
}
}
});
require(['app'], function (App) {
App.initialize();
});
以下是app.js:的内容
// file: js/app.js
define([
'jquery',
'underscore',
'backbone',
'router',
'models/user',
'collections/users'
], function ($, _, Backbone, Router, User, Users) {
var initialize = function () {
// Models to populate the global collection with default values.
var user1 = new User({
firstName : 'Sassy',
lastName : 'The fancy Pussycat'
});
var user2 = new User({
firstName : 'Lola',
lastName : 'The lovable Saint Bernard'
});
var user3 = new User({
firstName : 'Dany',
lastName : 'The guy'
});
var user4 = new User({
firstName : 'Aly',
lastName : 'The cute wife'
});
var user5 = new User({
firstName : 'Last',
lastName : 'Hoping to be the first'
});
// Global collection.
window.users = new Users([user1, user2, user3, user4, user5]);
Router.initialize();
}
return {
initialize : initialize
}
});
接下来,我加载router.js:
// file: router.js
define([
'jquery',
'underscore',
'backbone',
'views/userList',
'views/editUser'
], function ($, _, Backbone, UserList, EditUser) {
var Router = Backbone.Router.extend({
routes: {
'' : 'home',
'new' : 'editUser'
}
});
var initialize = function () {
var router = new Router();
router.on('route:home', function () {
var userList = new UserList();
userList.render();
});
router.on('route:editUser', function () {
var editUser = new EditUser();
editUser.render();
});
Backbone.history.start();
}
return {
initialize : initialize
}
});
最后,这里是我的一个观点:
// file: views/userList.js
define([
'jquery',
'underscore',
'backbone',
'text!templates/userListTemplate.html'
], function ($, _, Backbone, userListTemplate) {
var UserList = Backbone.View.extend({
el : '.page',
preLoader : '.preLoader',
render : function (currentPage) {
var that = this,
models = users.models,
perPage = 2,
totalPages = Math.ceil(models.length / perPage);
if (currentPage == null || currentPage.length === 0) {
currentPage = 0;
}
var start = currentPage * perPage,
end = start + perPage;
var subset = _.filter(models, function (num, index) {
return (index >= start) && (index < end);
});
var template = _.template(userListTemplate, {
users : subset,
totalPages : totalPages,
currentPage : currentPage
});
setTimeout(function () {
that.$el.append(template);
$(that.preLoader).hide();
that.$el.show('slow');
}, 500);
},
events : {
'click .pagination a' : 'click'
},
click : function (e) {
var currentPage = $(e.target).html() - 1;
this.render(currentPage);
}
});
return UserList;
});
我做错了什么?
当你试图在Internet Explorer上运行本地脚本时,它往往会变得非常粗略。也就是说,它看起来没有任何问题,当/如果你把所有东西都转移到服务器上,问题应该会自行解决。在此之前,请尝试将其添加到源html:的顶部
<!-- saved from url=(0014)about:internet -->
也可以在网上浏览一下,了解如何让IE接受你的本地脚本,比如这篇文章。
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- jQuery blueimp文件上传:将N-1个文件上传到IE中的服务器
- 以可优化的方式使用requirejs加载模板
- RequireJS向模块传递配置总是返回undefined
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 设置倒计时计时器,IE出现问题
- 仅在IE中,javascript中的时区名称不正确
- 在IE中加载Firebug Lite时出现问题
- 为什么我得到错误IE修剪方法是't支持
- IE中的CSS翻转动画:翻转的一面显示镜像内容
- 通过具有IE<11
- IE在将字符串转换为日期时从日期中删除4小时
- 列表样式在IE中未设置为none,但在IE中适用
- IE/Chrome中未定义的函数,但Firefox中没有
- Jquery Modal表单登录与AJAX-ASP经典上的IE 9
- window.opener.document在ie中不起作用
- 无法使文本插件在IE中使用requirejs
- 挖空模板在使用 RequireJS 和 Require Text 的 IE 8 中不起作用