为什么Dojo 1.6不能在IE8中使用Dojo .require正确加载javascript文件?
Why would Dojo 1.6 fail to properly load javascript file in IE8 using dojo.require?
以下代码在Firefox和Internet Explorer 8中与Dojo 1.5一起工作。
在Dojo 1.6中,它仍然可以在Firefox中工作,但不能在IE8中工作。
当调用wrappingFunctionInPlainJsFile()
时,我得到Object doesn't support this property or method
错误。
HTML页面:
<div dojoType="widget.MyCustomWidget"></div>
在部件/MyCustomWidget.js
dojo.provide("widget.MyCustomWidget");
dojo.require("js.plainJsFile");
dojo.declare("widget.MyCustomWidget", [dijit._Widget, dijit._Templated], {
...
// this gets called when the widget is clicked on in the UI
run: function() {
wrappingFunctionInPlainJsFile();
},
...
});
在js/plainJsFile.js dojo.provide("js.plainJsFile");
function someFunction() {
}
function wrappingFunctionInPlainJsFile(){
new someFunction();
}
如果你能告诉我哪里做错了,我将不胜感激。
注意:如果我直接在HTML页面上导入plainJsFile.js
而不是使用dojo.require
,那么我没有问题。
相信道场的目的。要求系统将代码分解为模块,这些模块不仅仅是任意的js块,而是dojo. declarations对象。当您编写dojo. provider ("js.plainJsFile")时,按照惯例,我希望有一个名为"js"的全局对象,它有一个属性"plainJsFile"。参见本页的代码示例。
我实际上使用dojo。需要的方式,忽略我所描述的约定,它工作得很好——在firefox中。但IE不会吞下它。如果所有需要的js文件被压缩成一个文件(你提到的解决你的问题),IE 将表现。
所以,基本上,我认为IE是不灵活的范围,而dojo。Require正在做它的事情,而你把函数声明放在一个"模块"中,就像那样破坏了事情。试着按照惯例去做,看看是否有帮助。
我尝试了dojo邮件列表,并得到了Karl Tiedt的修复。
请看这里:http://dojo-toolkit.33424.n3.nabble.com/Why-would-Dojo-1-6-fail-to-properly-load-javascript-file-in-IE8-using-dojo-require-td3204800.html#a3204894
复制/粘贴溶液。
"这是IE的怪癖....
dojo.provide("js.plainJsFile");
(function() {
function someFunction()
wrappingFunctionInPlainJsFile = function() {
new someFunction();
}
})();
应该工作……我总是这样使用我的命名空间
dojo.provide("js.plainJsFile");
(function(pjsf) {
pjsf.someFunction = function()
pjsf.wrappingFunctionInPlainJsFile = function(){
new someFunction();
}
})(js.plainJsFile);
"
注意:我尝试了上面的解决方案,它适用于我在IE8和Firefox。
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Dojo:访问dijit.form.Select中单击的项目
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- onChange不足以从Dojo组合框触发查询
- 在gump和nodejs中使用Typescript时,未定义对require和exports的引用
- Typescript导入导出的类会发出require(..),从而导致浏览器错误
- Dojo XHR将200 OK视为错误
- Dojo IE DataGrid内联编辑
- dojo中的require()和define()函数的主要区别是什么?我们什么时候使用它们
- AMD/Dojo 1.7 单页应用程序:将 Require() 放在哪里
- Dojo从内部返回值require
- Dojo require() and AMD (1.7)
- Dojo:有'require'在循环中
- 是否有可能阻止/删除任何由dojo.require声明的缓存脚本?
- 使用require的Dojo循环依赖
- 为什么Dojo 1.6不能在IE8中使用Dojo .require正确加载javascript文件?
- dojo的冲突.require和Socket.输入输出端
- Dojo require/difine-如何知道哪个函数和属性属于哪个模块
- Dojo 1.6的hitch()作用域在require语句中