レポートの種類
Chrome 78.0.3904.97 で CKEditor を使用してリンクを追加すると、次のエラーが発生し、最新の firefox も確認しましたが、これを再現できます
link.js?t=J8Q8:27 Uncaught TypeError: Cannot read property 'length' of undefined
at CKEDITOR.dialog.onOk (link.js?t=J8Q8:27)
at CKEDITOR.dialog.<anonymous> (ckeditor.js:613)
at CKEDITOR.dialog.l (ckeditor.js:10)
at CKEDITOR.dialog.fire (ckeditor.js:12)
at button.onClick (ckeditor.js:637)
at button.<anonymous> (ckeditor.js:575)
at button.l (ckeditor.js:10)
at button.fire (ckeditor.js:12)
at button.click (ckeditor.js:574)
at CKEDITOR.dom.element.<anonymous> (ckeditor.js:566)
再現手順
- CKeditor のリンクを有効にする
- ckeditor ツールバーのリンク アイコンをクリックします。
- 表示名とリンクを追加するダイアログが開きます
- リンクと表示名を追加する
- OKをクリック
期待される結果
ダイアログボックスを閉じて、リンクを ckeditor テキストエリアに追加します
実結果
ダイアログボックスが閉じず、コンソールが表示されます
link.js?t=J8Q8:27 Uncaught TypeError: Cannot read property 'length' of undefined
at CKEDITOR.dialog.onOk (link.js?t=J8Q8:27)
at CKEDITOR.dialog.<anonymous> (ckeditor.js:613)
at CKEDITOR.dialog.l (ckeditor.js:10)
at CKEDITOR.dialog.fire (ckeditor.js:12)
at button.onClick (ckeditor.js:637)
at button.<anonymous> (ckeditor.js:575)
at button.l (ckeditor.js:10)
at button.fire (ckeditor.js:12)
at button.click (ckeditor.js:574)
at CKEDITOR.dom.element.<anonymous> (ckeditor.js:566)
その他の詳細
- ブラウザ: クロム 78.0.3904.97 / ファイアフォックス
- OS: マック
- CKEditor バージョン: 4.13.0
- インストールされた CKEditor プラグイン:
CKEditor を Emberjs コンポーネントとして使用する
コンポーネント/ckeditor.js
import Ember from 'ember';
import config from 'project/config/environment';
export default Ember.Component.extend( {
allowLinks: true,
didInsertElement: function() {
var self = this,
$textarea = this.$().find( 'textarea' )[0],
ckconfig = {
toolbarGroups: [
{ name: 'styles' },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'paragraph', groups: [ 'list' ] },
{ name: 'others' },
{ name: 'clipboard', groups: [ 'undo' ] },
{ name: 'editing', groups: [ 'find', 'selection' ] },
{ name: 'colors' }
],
removeButtons: 'Subscript,Superscript,Cut,Copy,Paste,PasteText,PasteFromWord,Anchor,Styles,Font,FontSize,Find,Replace,SelectAll,BGColor',
format_tags: 'h1;p',
removeDialogTabs: 'link:advanced;link:target',
removePlugins: 'magicline',
disallowedContent : {
'$1': {
styles: 'color'
}
}
},
outputRules = {
indent: false,
breakBeforeOpen: false,
breakAfterOpen: false,
breakBeforeClose: false,
breakAfterClose: false
};
// custom config
if ( this.get( 'allowLinks' ) ) ckconfig.toolbarGroups.splice( 3, 0, { name: 'links' } );
CKEDITOR.config.customConfig = false;
CKEDITOR.config.defaultLanguage = 'en';
CKEDITOR.config.language = 'en';
CKEDITOR.config.contentsCss = config.baseURL + 'ckeditor.css' ;
CKEDITOR.config.height = 420;
CKEDITOR.config.skin = 'bootstrapck,' + config.baseURL + 'assets/bootstrapck/';
CKEDITOR.config.colorButton_colors = '0000FF,FFA500';
CKEDITOR.config.colorButton_enableMore = false;
CKEDITOR.on( 'instanceReady', function(e) {
e.editor.dataProcessor.writer.setRules( 'h1', outputRules );
e.editor.dataProcessor.writer.setRules( 'p', outputRules );
e.editor.dataProcessor.writer.setRules( 'ol', outputRules );
e.editor.dataProcessor.writer.setRules( 'ul', outputRules );
e.editor.dataProcessor.writer.setRules( 'li', outputRules );
} );
CKEDITOR.on( 'dialogDefinition', function(e) {
var dialogName = e.data.name,
dialogDefinition = e.data.definition;
if ( dialogName === 'link' ) {
dialogDefinition.onShow = function () {
var dialog = CKEDITOR.dialog.getCurrent(),
linkType = dialog.getContentElement( 'info' , 'linkType' ),
anchorOptions = dialog.getContentElement( 'info' , 'anchorOptions' ),
emailOptions = dialog.getContentElement( 'info' , 'emailOptions' ),
protocol = dialog.getContentElement( 'info' , 'protocol' );
linkType.getElement().hide();
anchorOptions.getElement().hide();
emailOptions.getElement().hide();
protocol.disable();
};
}
} );
Ember.run( function() {
$textarea.value = self.get( 'value' ) || '';
CKEDITOR.replace( $textarea, ckconfig ).on( 'change', function(e) {
self.set( 'value', e.editor.getData() );
} );
} );
}
} );
どうすれば修正できますか?githubの問題も確認しましたが、残念ながら何も見つかりませんでした