使用requireJS加载jquery.jstree.js并不适用于IE

时间:2011-08-02 12:51:13

标签: internet-explorer-8 jstree requirejs

使用requireJS加载jquery.jstree.js并不适用于IE。

当我尝试使用requireJS加载JSTree插件(jquery.jstree.js)时,它在IE8中失败并出现JS错误。

Message: Could not get the type property. Invalid argument.
Line: 109
Char: 463
Code: 0
URI: file:///...../js/requireplugins-jquery-1.4.3.js

我已经在其他浏览器(FF和Chrome)中测试了它,它在那里工作正常。此外,它在IE中适用于其他jQuery插件,只有jsTree插件才会出现问题

下面的一些代码段

I have a test.html where I load requrejs specifying the data-main attribute.    
<script type="text/javascript" data-main="main" src="js/requireplugins-jquery-1.4.3.js"></script>

A main.js where I define all the modules to be loaded and a callback - I have shown 
only the jstree module here as that's the only one causing a problem.
main.js:
require(["jquery.jstree"], callBackFunctionToInitialzeTree);

2 个答案:

答案 0 :(得分:0)

我发现调试require.js有点棘手 - 特别是当我没有按正确的顺序包含脚本时。我做了以下这不是一个直接的答案,但可以帮助你追踪它...

1)在调用execCb之前,在require-jquery.js中放入一个console.log行,以追踪它正在加载的模块的fullName。在我正在使用的版本中(来自主要的require.js网站的require-jquery,它是500行)。我没有看到你正在使用的版本(requireplugins-jquery.1.4.3),所以我不确定你需要的行号。

2)您可能会发现需要使用“订单”!插件如果你有多个文件依赖项需要先加载其他的(我注意到jstree依赖于jquery.cookie和jquery.hotkey)。 http://requirejs.org/docs/api.html#order

如果你可以添加更多细节,我会尝试提供更多帮助。

GL

答案 1 :(得分:0)

我对jstree.js和require.js有相同的问题。我更改了包含顺序(先是jstree,然后是requirejs),我的问题已解决。