我正在运行一个非常简单的脚本,以在我们的SharePoint网页中使用RequireJS进行探索。以下功能在Chrome&IE 11 Edge模式下应能正常运行,但在10兼容模式下的IE 11中则无法运行。
代码如下:
require.config({
baseUrl: '',
paths: {
jquery: 'jquery-2.7.2.min'
}
});
require(
['jquery'],
function($) {
var jqobj = null;
try {
jqobj = $('html');
console.warn('jquery loaded', {'some prop': 'some val', 'jqobj':jqobj});
}
catch(ex) {
console.warn('jquery not properly loaded', {"ex": ex});
}
}
);
在Chrome或IE 11 Edge模式下,RequireJS可以正常运行。函数内部的代码未执行,控制台报告此错误:
“ require.js:168未捕获的错误:” jquery“的脚本错误 http://requirejs.org/docs/errors.html#scripterror”
在IE 11的10兼容模式下,RequireJS无法正常工作。控制台不会报告任何错误消息,而是继续进入该函数,因为未定义jquery(aka $),从而引发错误。
为什么IE会这样?还有其他一些步骤来确保如果找不到所需的模块,则代码不会运行?