【问题标题】:Force ckeditor to add a class强制ckeditor添加一个类
【发布时间】:2019-04-11 15:34:43
【问题描述】:

我将 CKEditor 与 CKFinder 结合使用来控制幻灯片的图像。为了让幻灯片使一切正常工作,图像需要“幻灯片赞助商”作为添加到它们的类。 ATM 如果添加图像,则需要再次为每个图像添加类。我希望 CKEditor 自动添加该类,但仅在该实例中。

我已经仔细阅读了这个提示:Force CKEditor to add a class to p-tags,但我无法让它工作。

这就是我的代码的样子

<form action="verwerken.php" method="post">
   <div class="Slideshow-container w3-half w3-content w3-display-container" id="Slideshow">
      <textarea style="width: 100%" rows="5" id="sponsorsideshow" name="sponsorslideshow">
         <?php echo $sponsorslideshow; ?>
      </textarea>
      <script type="text/javascript">
         var editor = CKEDITOR.replace( 'sponsorslideshow', {
            filebrowserBrowseUrl : 'ckeditor/ckfinder/ckfinder.html',
            filebrowserImageBrowseUrl : 'ckeditor/ckfinder/ckfinder.html?type=Images',
            filebrowserFlashBrowseUrl : 'ckeditor/ckfinder/ckfinder.html?type=Flash',
            filebrowserUploadUrl : 'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
            filebrowserImageUploadUrl : 'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
            filebrowserFlashUploadUrl : 'ckeditor/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'
          });
          editor.dataProcessor.htmlFilter.addRules({
             elements :{
                img : function( element ){
                   if ( element.className.indexOf("Slideshow-Sponsors") < 0){
                      element.className += 'Slideshow-Sponsors';
                   }
                }
             }
          });
          CKFinder.setupCKEditor( editor, '../' );
      </script>
      <button type="submit"">Opslaan</button>
   </div>
</form>

预期结果是 CKEditor 将 class="Slideshow-Sponsors" 添加到每个 img 但仅在该实例中。在同一页面上运行的其他实例也使用图像,因此添加配置并不能提供好的解决方案。但实际结果是ckeditor没有添加类。

【问题讨论】:

    标签: php class ckeditor ckfinder


    【解决方案1】:

    规则应该放在instanceReady 事件中,你应该使用hasClassaddClass 函数。

    editor.on('instanceReady', function(evt) {
        this.dataProcessor.htmlFilter.addRules({
            elements: {
                img: function(element) {
                    if (!element.hasClass('Slideshow-Sponsors')) {
                        element.addClass('Slideshow-Sponsors');
                    }
                }
            }
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 2020-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 2011-05-10
      相关资源
      最近更新 更多