2017-08-07 22 views
0

しますCKEditorバージョン - (読み取り専用モードで)私はCKEditorバージョン4.5.4を使用していますが、私は、このコマンドを使用して、エディタの読み取り専用の状態をトグルボタンを持っているリンクはクリック可能

var editor = CKEDITOR.replace('text', { height: '200px' }); 
editor.setReadOnly(false); 

何Iエディタがread-onlyモードにあるときにCKEditor内のすべてのリンクをクリック可能にする - read-onlyがfalseの場合、リンクが正常に動作するようにします。

リンクをクリック可能にするのには苦労しています。それらを調べると、有効なHTMLであることがわかります(ある時点で、CKエディタのリンクは下線付きの青いテキストであると思っていました) CKEditorがこれらのリンクのデフォルト動作を妨げていると仮定します。これはトグル可能ですか?

答えて

1

リンクを開くといくつかの問題が発生するため、これは意図的な動作です。ここにコードの一部はprevents opening links in read-only modeです。

さらに広範なコンテキストおよびこの動作によって発生する問題については、https://dev.ckeditor.com/ticket/6032およびhttps://dev.ckeditor.com/ticket/10912も参照してください。それをテストするためにthis codepenを参照してください

<textarea name="editor1" id="editor1" rows="10" cols="80"> 
    <p>Foo Bar Baz <a href="http://ckeditor.com">CKEditor</a></p> 
</textarea> 

:HTMLなどで

var editor = CKEDITOR.replace('editor1', { readOnly: true }); 

editor.on('contentDom', function() { 
    var editable = editor.editable(); 
    editable.attachListener(editable, 'click', function(evt) { 
     var link = new CKEDITOR.dom.elementPath(evt.data.getTarget(), this).contains('a'); 
     if (link && evt.data.$.button != 2 && link.isReadOnly()) { 
      window.open(link.getAttribute('href')); 
     } 
    }, null, null, 15); 
}); 


あなたはあなたのようなリンクハンドラを所有して追加することができます。また、これは私たちがハンドル開口部がネイティブのリンクをクリックしたブラウザたい理想として完璧なソリューションではありません

など、 hrefが空でないかどうかを確認するために

を追加チェックを追加することができます。しかし、ほとんどのシナリオでは、期待どおりに動作するはずです。 また、ユーザーがリンクhrefを(編集中に)何らかの方法で操作できるため、セキュリティ上の問題が発生することがあります。

関連する問題