4

我有 TinyMCE 在包含 jQuery UI 选项卡面板的彩盒模式窗口中初始化通过 AJAX 回调加载的文本区域。正在加载文本区域的面板是可滚动的(overflow-y:auto)。但是,似乎当我在这些新文本区域上初始化 TinyMCE 时,它会向下滚动到列表中较低的文本区域之一,并正确初始化它们,但是您不能再在 Chrome 中滚动容器面板的 div。您仍然可以在 Firefox 和 IE 中滚动面板的 div,但不能在 Chrome 中滚动。

我的 AJAX 调用:

function getStuff(id){
        $.ajax({
            type: 'POST',
            url: '/ajax/get_stuff',
            data: {id: id},
            beforeSend:function(){  
                $('#panel').html('Loading...');                                 
            },
            success:function(resp){             
                $('#panel').html(resp); 
                ckInit();
            },
            error:function(){}
        }); 
    }

和初始化函数:

function ckInit(){
    var config = {              
             extraPlugins : 'autogrow',
             autoGrow_onStartup : true ,
             removePlugins : 'resize'               
        };
    $("textarea.ck").each(function() {              
        if (typeof(CKEDITOR.instances[this.id]) == 'undefined') {           
            CKEDITOR.replace(this.id, config);
        } else {
            CKEDITOR.instances[this.id].destroy(true);
            CKEDITOR.replace(this.id, config);
        }           
    });
}

如果任何其他信息会有所帮助,请告诉我。而且,提前谢谢!

更新 我感觉 Colorbox 与它有关,所以我尝试在主窗口中加载实例,以获得相同的确切结果。容器 div 向下滚动任意量,滚动条冻结。尝试上下移动它不会滚动。

我尝试用 CKeditor 替换 TinyMCE,但奇怪的是,同样的问题。这让我觉得我在初始化它们是错误的,或者什么......

有任何想法吗?

更新 4/28 似乎如果我单独初始化文本区域,滚动条不会冻结。但是,当我根据类选择器初始化 textareas 时,如上例所示,它确实如此。

另一个奇怪的行为:如果我来回单击以选择一个编辑器,然后选择另一个,如果我这样做几次,它会解锁滚动条。不知何故,切换当前编辑器几次的行为释放了它。

4

2 回答 2

3

我也遇到了同样的问题,请问你们有没有找到解决方法?

编辑:所以看来它肯定是导致问题的 URL 中的哈希。我对以下解决方案不满意,但它确实有效......

$('body').on('click', 'a', function(e){
  if( $(this).attr('href') === '#' ) e.preventDefault(); 
});

希望对某人有所帮助,但如果有人想出更好的解决方案,请告诉我。

我发现以下文章可能会有所帮助:

http://cksource.com/forums/viewtopic.php?t=25351

https://github.com/cleditor/cleditor/issues/10

于 2012-10-23T17:24:16.507 回答
2

我在 jQuery 模式中加载编辑器时也遇到了这个问题。事实证明,锚点/哈希存在问题。如果显示模式时在 url 中,Chrome 会阻塞。如果您可以在显示模态之前将其删除,它将起作用。

这是在 TinyMCE 的 3.5b2 版上。

于 2012-10-21T17:32:42.110 回答