2013-11-19 4 views
1

Я просто не могу заставить текстовый плагин работать с requirejs в Internet Explorer.Не удается заставить текстовый плагин работать с requirejs в IE

Я получаю следующее сообщение об ошибке:

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 и хром.

Вот мой конфиг:

// 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; 
    }); 

Что я делаю неправильно?

ответ

1

Internet Explorer имеет тенденцию получать чрезвычайно набросок при попытке to run local scripts on it. При этом не похоже, что на вашем конце ничего плохого, и когда/если вы переместите все на сервер, проблема должна решить сама. До тех пор, попробуйте добавить это в верхней части исходного HTML:

<!-- saved from url=(0014)about:internet --> 

, а также смотреть вокруг в Интернете для получения инструкций о том, как получить IE, чтобы принять ваши локальные сценарии, как this post here.

+0

Я переместил его на сервер и имел ошибки, но я спешил работать сегодня, и мне нужно дважды проверить. Какие существуют альтернативы text.js? Есть идеи? –

+0

Я добавил эту строку кода, я не получаю «предупреждение о блокировке содержимого», но ошибки сохраняются. Возможно, это из прокладки, или, может быть, существует несовместимость между используемыми библиотеками. –

+0

Я использовал свою локальную установку WAMP, и она работает;) WOW, повезло! :) ty –

Смежные вопросы