Javascript 仅在IE8和IE9中获取错误,而不是在其他浏览器中获取错误

Javascript 仅在IE8和IE9中获取错误,而不是在其他浏览器中获取错误,javascript,internet-explorer,requirejs,Javascript,Internet Explorer,Requirejs,我正在开发一个使用大量js库的应用程序,主要使用ExpressJS。 所有代码在Firefox和Chrome上运行良好。但我发现IE8和IE9中的错误如下 SCRIPT5022: fromText eval for hbs!notification/templates/dropDown failed: SyntaxError: Syntax error in regular expression http://requirejs.org/docs/errors.html#fromtexteval

我正在开发一个使用大量js库的应用程序,主要使用ExpressJS。 所有代码在Firefox和Chrome上运行良好。但我发现IE8和IE9中的错误如下

SCRIPT5022: fromText eval for hbs!notification/templates/dropDown failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!notification/templates/dropDownItem failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!layouts/admin/templates/teamManagement failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!layouts/admin/alarms/templates/projectAlarms failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!admin/templates/navigation failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!layouts/admin/templates/base failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9
这些错误只出现在IE8和IE9中

SCRIPT5022: fromText eval for hbs!notification/templates/dropDown failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!notification/templates/dropDownItem failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!layouts/admin/templates/teamManagement failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!layouts/admin/alarms/templates/projectAlarms failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!admin/templates/navigation failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9

SCRIPT5022: fromText eval for hbs!layouts/admin/templates/base failed: SyntaxError: Syntax error in regular expression
http://requirejs.org/docs/errors.html#fromtexteval 
require.js, line 138 character 9
这是我的config.js

require.config({
  paths: {
    // Require plugins
    'text': 'vendor/requirejs-text/text',
    'css': 'vendor/css/css',
    'hbs': 'vendor/require-handlebars-plugin/hbs',
    'Handlebars': 'vendor/require-handlebars-plugin/Handlebars',
    'i18nprecompile': 'vendor/require-handlebars-plugin/i18nprecompile',
    'json2': 'vendor/require-handlebars-plugin/json2',

    // Libraries
    'es5shim': 'vendor/es5-shim/es5-shim',
    'underscore': 'vendor/underscore/underscore',
    'jquery': 'vendor/jquery/jquery',
    'jquery.DatePicker': 'vendor/datepicker/datepicker',
    'jquery.mousewheel': 'vendor/jquery-mousewheel/jquery.mousewheel',
    'backbone': 'vendor/backbone/backbone',
    'backbone.virtualCollection': 'vendor/backbone-virtual-collection/backbone.virtual-collection',
    'backbone.marionette': 'vendor/backbone.marionette/backbone.marionette',
    'backbone.marionette.handlebars': 'vendor/backbone.marionette.handlebars/backbone.marionette.handlebars',
    'leaflet': 'vendor/leaflet/leaflet-src',
    'highcharts': 'vendor/highcharts/highcharts.src',
    'paper': 'vendor/paper/paper',
    'handsontable': 'vendor/handsontable/jquery.handsontable',
    'walltime': 'vendor/walltime-js/walltime',
    'walltime-data': 'vendor/walltime-js/walltime-data'
  },
  shim: {
    'underscore': {
      exports: '_'
    },
    'jquery.DatePicker': {
      deps: ['jquery']
    },
    'backbone': {
      deps: ['underscore', 'jquery'],
      exports: 'Backbone'
    },
    'backbone.marionette': {
      deps: ['backbone'],
      exports: 'Marionette'
    },
    'backbone.virtualCollection': {
      deps: ['backbone', 'underscore']
    },
    'leaflet': {
      exports: 'L'
    },
    'highcharts': {
      deps: ['jquery'],
      exports: 'Highcharts'
    },
    'walltime': {
      deps: ['walltime-data']
    }
  },
  hbs: {
    i18nDirectory: 'i18n/',
    disableI18n: false,       // This disables the i18n helper and
                              // doesn't require the json i18n files (e.g. en_us.json)
                              // (false by default)

    disableHelpers: true,     // When true, won't look for and try to automatically load
                              // helpers (false by default)

    helperPathCallback:       // Callback to determine the path to look for helpers
      function (name) {       // ('/template/helpers/'+name by default)
        return 'cs!' + name;
      },

    compileOptions: {}        // options object which is passed to Handlebars compiler
  }
});
请帮帮我,伙计们

-----更新-----

我将此作为问题发布在Github上,用于requirejsrepo。
您可以找到它
根据评论,问题似乎在于IE9中的eval
我也试着把
eval(“+text+”)
放在前面提到的位置,但仍然不起作用

谁能告诉我如何在IE9中使用这个评估工具吗


谢谢

这似乎与JQuery中发生的类似问题有关

这都是因为DOM没有准备好,并且由于DOM没有完全加载,因此会发生此错误

如果您尚未完成此操作,请尝试在结尾页添加脚本或进行某种延迟加载:

如何使用RequireJS实现延迟加载? 顺便说一下,就这一点而言,微软似乎拒绝了它并没有认为这是一个错误:


这似乎与JQuery中发生的类似问题有关

这都是因为DOM没有准备好,并且由于DOM没有完全加载,因此会发生此错误

如果您尚未完成此操作,请尝试在结尾页添加脚本或进行某种延迟加载:

如何使用RequireJS实现延迟加载? 顺便说一下,就这一点而言,微软似乎拒绝了它并没有认为这是一个错误:


这是我的问题,很可能是你的问题:

//IE with conditional comments on cannot handle the
//sourceURL trick, so skip it if enabled.
/*@if (@_jscript) @else @*/
if (!config.isBuild) {
    text += "\r\n//@ sourceURL=" + path;
}
/*@end@*/

如果源url位于传递给eval的文本末尾,IE将出现语法错误。

这是我的问题,可能是你的问题:

//IE with conditional comments on cannot handle the
//sourceURL trick, so skip it if enabled.
/*@if (@_jscript) @else @*/
if (!config.isBuild) {
    text += "\r\n//@ sourceURL=" + path;
}
/*@end@*/

如果源url位于传递给eval的文本的末尾,IE将出现语法错误。

对@jsvellow的回答非常有用! 所示代码段位于require Handlebar插件的hbs.js中。 据报道,

优先于

//@ sourceURL=
在我修改了hbs.js中的相应行之后,在所有经过测试的浏览器(谷歌chrome 35、火狐30、IE 8-10)中,一切都按预期运行。 我在上提交了一个请求,目前正在合并和评估


我希望这能帮助那些可能遇到同样问题的人。

对@jshellow的回答真的很有帮助! 所示代码段位于require Handlebar插件的hbs.js中。 据报道,

优先于

//@ sourceURL=
在我修改了hbs.js中的相应行之后,在所有经过测试的浏览器(谷歌chrome 35、火狐30、IE 8-10)中,一切都按预期运行。 我在上提交了一个请求,目前正在合并和评估


我希望这能帮助任何可能遇到同样问题的人。

尝试在html@Dalorzo中添加此内容:第一条评论无效!!尝试在你的html@Dalorzo中添加这个:第一条评论不起作用!!