0

JS API 3.5 を使用しています。

Web アプリにエディター ウィジェットがあります。ウィジェットで [New Selection] をクリックすると、「Uncaught TypeError: Cannot read property 'preventDefault' of undefined」というエラーがスローされます

Chrome と Firefox では、コンソール ログにこのエラーがあっても描画して続行できますが、IE 11 はこの例外で中断します。

正確なエラー メッセージは、 http: //serverapi.arcgisonline.com/jsapi/arcgis/3.5/ の 34 行目、471861 列目の Unhandled exception です。

0x800a138f - JavaScript ランタイム エラー: 未定義または null 参照のプロパティ 'preventDefault' を取得できません

IE デバッグ ファイルでは、e の値が定義されていないコードのようになります。

_onClick:function(e){
        var ok=this.inherited(arguments);
        if(ok)
        {
           if(this.valueNode)           
        {           
          this.valueNode.click();
          e.preventDefault(); //e is undefined
          e.stopPropagation();}
        }
           return ok;
        }

ソースコードで見つけることができないため、この例外を処理する方法についての手がかりがありません。

以下に、エディター ウィジェットが作成されるコードを示します。

          require(["esri/dijit/editing/Editor",
                "esri/dijit/editing/TemplatePicker",
                 "dojo/domReady!"], lang.hitch(this, function (Editor, TemplatePicker) {

          console.log("click on new Editor => " + ops);
          this.editor = new Editor({
            'settings': ops
          }, editorContainer);
          this.editor.startup();
        }));

私は次のことを試みましたが、うまくいきませんでした: エディター ウィジェットが呼び出される前 - 変更

助けてください!

エディター ウィジェット onClick が呼び出されるコードは次のとおりです。

   define([
     'dojo/_base/declare',
     'dijit/_WidgetBase',
     'dijit/_TemplatedMixin',
     'dijit/_WidgetsInTemplateMixin',
      'dojo/_base/lang',
      'dojo/dom-construct',
         'dojo/domReady!'], function (declare, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin, lang, domConstruct) {

  return declare([_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
      templateString: '<div class="gis_GeoLocation_Dijit"><div style="text-align:center;"><button data-dojo-type="dijit/form/Button" data-dojo-attach-event="onClick:toggleEditing" data-dojo-props="label:\'Start Editing\',baseClass:\'geoLocationButton\'" style="background-color:#ECECEC;" data-dojo-attach-point="toggleBTN"></button></div><div style="margin-top:5px;" data-dojo-attach-point="containerNode"></div></div>',
    widgetsInTemplate: true,
    editor: null,
    isEdit: false,
    templatePicker: null,

    toggleEditing: function () {
      if (!this.isEdit) {
        var ops = lang.clone(this.settings);
        ops.map = this.map;
        ops.layerInfos = this.layerInfos;

        var templatePickerOptions = this.templatePickerOptions;
        templatePickerOptions.featureLayers = this.templatePickerFeatureLayers;

        // create container for Editor
        var editorContainer = domConstruct.create("div", {
          innerHTML: '<img style="display:inline;" src="data:image/gif;base64,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"/>',
          "style": "text-align:center;"
        }, this.containerNode, "only");

        require(["esri/dijit/editing/Editor",
                "esri/dijit/editing/TemplatePicker",
                 "dojo/domReady!"], lang.hitch(this, function (Editor, TemplatePicker) {

          //if (templatePickerOptions != null) {
          //  console.log("new TemplatePicker => " + templatePickerOptions);
          //  this.templatePicker = new TemplatePicker(templatePickerOptions, templatePickerContainer);
          //  this.templatePicker.startup();
          //  ops.templatePicker = this.templatePicker;
          //}

          console.log("click on new Editor => " + ops);
          this.editor = new Editor({
            'settings': ops
          }, editorContainer);
          this.editor.startup();
        }));

        this.map.enableSnapping({
         tolerance: 20,
          snapKey: dojo.keys.ALT
        });

        this.toggleBTN.set('label', 'Stop Editing');
        this.isEdit = true;
      } else {
        this.editor.destroyRecursive();
        this.toggleBTN.set('label', 'Start Editing');
        this.isEdit = false;
        this.editor = null;
        this.templatePicker = null;
      }
    }
  });
});
4

0 に答える 0