2017-06-03 1 views
2

アップロードされた画像をエディタに埋め込むことを試みています。私のfilebrowserUploadUrl/api/m/imageであり、正常に動作しているようです。画像をアップロード:未定義のプロパティ 'setCustomData'を読み取ることができません

image.js?t=H4PG:19 Uncaught TypeError: Cannot read property 'setCustomData' 
of undefined 
    at textInput.onChange (image.js?t=H4PG:19) 
    at textInput.n (ckeditor.js:10) 
    at textInput.CKEDITOR.event.CKEDITOR.event.fire (ckeditor.js:12) 
    at textInput.setValue (ckeditor.js:619) 
    at textInput.setValue (ckeditor.js:545) 
    at a.q (ckeditor.js:841) 
    at ckeditor.js:31 
    at Object.callFunction (ckeditor.js:31) 
    at image?CKEditor=editor&CKEditorFuncNum=1&langCode=en:1 

を上記の最後の行がfilebrowserUploadUrlへの呼び出しであり、それからの応答は次のとおりです:

window.parent.CKEDITOR私は Send it to the Serverボタンをクリックした後、次のように、スクリプトエラーがあります.tools.callFunction(1、 '/images/bulletins.jpg'、 'Uploaded successfully');

Uploaded successfullyメッセージがアラートに表示されます。 Image Infoタブのプレビューボックスは更新されません。しかし、OKをクリックしてダイアログを閉じると、イメージ(bulletins.jpg)がエディタに埋め込まれます。

エラーの原因となる原因とその修正方法を教えてください。


原因がわかりました。画像の挿入ダイアログが[アップロード]タブに表示されたら、デフォルトのタブを設定したかったのです。

CKEDITOR.on("dialogDefinition", function(ev) { 
    var dialogName = ev.data.name; 
    var dialogDefinition = ev.data.definition; 
    if (dialogName === "image") { 
    dialogDefinition.onShow = function() { 
     this.selectPage("Upload"); 
    } 
    } 
}); 

上記のコードを使用すると、ファイルをアップロードするときにエラーが発生します。

+0

私はonShowイベントハンドラを使用した後、同じ問題に直面しています。 dialogDefinition.onShow = function(){ console.log( 'onShow called'); } 誰かが私を助けてくれますか? –

答えて

0

多くのデバッグの後、私はこれに関する解決策を見つけました。

あなたはimage.jstxtUrl、テキストボックス(TextBox)コントロールのonChange方法が表示されます場合は、このエラーの原因を理解する行番号507と513 を参照してください。

at 513 setCustomDataと呼ばれます。

original.setCustomData( 'isReady'、 'false');テキストに画像リンクを貼り付けながら

CKEDITOR.on("dialogDefinition", function(ev) { 
    var dialogName = ev.data.name; 

    //current editor 
    var editor = ev.editor; 
    var dialogDefinition = ev.data.definition; 

    if (dialogName === "image") { 
    dialogDefinition.dialog.on('show', function(e){ 
     var dialogBox = e.sender; 

     //This line is the answer of your question 
     //this line will get rid of the error setCustomData 
     dialogBox.originalElement = editor.getSelection().getStartElement(); 
     this.selectPage("Upload"); 
    }); 
    } 
}); 
0

私は同じ問題を抱えていた、とヴィクラムから提案されたソリューションを使用した後、エディタはエラーを生成しました。ここではより良いアプローチ、完全にデフォルトonShowメソッドをオーバーライドしますが、次のようにそれに多くを追加しない:

CKEDITOR.on('dialogDefinition', function (ev) { 
    var dialogName = ev.data.name; 
    var dialogDefinition = ev.data.definition; 

    if (dialogName == 'image') { 

     var oldOnShow = dialogDefinition.onShow; 
     var newOnShow = function() { 
      this.selectPage('Upload'); 
      this.hidePage('Link'); 

      // change tabs order 
      $('a[title=Upload].cke_dialog_tab').css('float', 'left'); 
     }; 

     dialogDefinition.onShow = function() { 
      oldOnShow.call(this, arguments); 
      newOnShow.call(this, arguments); 
     }; 
    } 
}); 
関連する問題