1

为什么这在 IE10 和 Firefox 中有效,但在 IE7/8 中无效?

Dojo 1.8 版,使用自动要求,使用新的缺失消息扩展 Select...

define([
    "dojo/_base/declare",
    "dijit/form/Select",
], function (declare, Select) {
    return declare("mydijit.form.Select", [Select], {
        missingMessage: "Please answer this.",
        postMixInProperties: function(){
            this.inherited(arguments);
            this._missingMsg = this.missingMessage;
        }

    });
});

在 dojo.js 中失败

def (line 1801) => defineModule (line 1546) =>

getModule = function(mid, referenceModule, immediate){
....
    match = mid.match(/^(.+?)\!(.*)$/); (line 1013)

由于某种原因 mid 是未定义的。

4

1 回答 1

1

发现了问题 - 如果您仔细查看模块列表,它在列表末尾包含一个逗号,Internet Explorer 7 将其解释为表示后面有一个未定义的字段。IE 的更高版本从容应对。

define([
    "dojo/_base/declare",
    "dijit/form/Select"
], function (declare, Select) {
    return declare("mydijit.form.Select", [Select], {
        missingMessage: "Please answer this.",
        postMixInProperties: function(){
            this.inherited(arguments);
            this._missingMsg = this.missingMessage;
        }

    });
});
于 2013-07-10T17:06:13.217 回答