RequireJS和IE11兼容模式:即使缺少必需的文件,RequireJS也会执行模块

时间:2018-07-11 19:48:51

标签: javascript jquery sharepoint requirejs

我正在运行一个非常简单的脚本,以在我们的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会这样?还有其他一些步骤来确保如果找不到所需的模块,则代码不会运行?

0 个答案:

没有答案