【问题标题】:How to scroll CKEditor while in WYSIWYG mode?如何在 WYSIWYG 模式下滚动 CKEditor?
【发布时间】:2011-06-22 14:53:31
【问题描述】:

我正在构建一个站点,并且某些页面包含 CKEditor 的实例(即 WYSIWYG 编辑器)。到目前为止,他们工作正常。尽管如此,事实是有时我需要在不需要用户交互的情况下将编辑区域滚动到底部(即从外部事件处理程序的主体内以编程方式执行滚动)。

问:

  • 滚动CKeditor的正确方法是什么(即我应该使用什么方法) 所见即所得 编辑器 ?页面可能有多个实例,我只是要求 滚动特定的编辑器实例。

PS:我在文档中找不到任何内容,而且谷歌搜索根本没有帮助 :( .

【问题讨论】:

    标签: javascript ckeditor


    【解决方案1】:

    奥莱米斯

    我不知道官方的方式,但设法劫持 - 真丢脸 - http://ckeditor.com/demo 的 CKEditor 和以下代码适用于 IE/FF(你必须尝试其他浏览器恐怕)

    document.getElementById("ifr").contentWindow.scrollTo(0,3)
    

    其中“ifr”是我在运行时为 iframe 指定的名称。好消息,这两款浏览器都支持出色的开发人员工具和运行奇迹的 js 控制台...

    现在,CKEditor 框架没有正确的 id,但它包含的元素有(在那个演示中,它是一个 TD id'ed "cke_contents")。里程可能会有所不同。这表明您可以使用 jquery 对其进行调味。

    让我知道那个“hack”是否正常工作,否则我们希望有人提供一些可行的代码。

    问候

    【讨论】:

    • 上面的解决方案接近于最终解决方案,但具有棘手的含义: - 在 Opera 中,window 对象没有 scrollTo 方法 :$ - 这对我在 FF 只有当 Firebug 开启时才有效。
    • 我的意思是 Firebug 活动和 /me 测试然后它工作。关闭 Firebug (不重新加载)并且它不会滚动窗口。重新加载页面,它仍然不滚动窗口... :$
    • 很遗憾 :( ... only 与 Firebug 一起工作,这不是很奇怪吗?Firebug 添加了什么样的盐?O_O。你试过 咳嗽IE咳嗽 ?
    • 我什至尝试了一种替代方法,使 Firefox 输出到错误控制台内部的 UNKNOWN_ERROR_xxx 消息。疯了!
    【解决方案2】:

    我知道这是一个旧 Q,但它在 a newer one I recently answered 上显示为相关。从那里复制以供将来参考:我可以访问 jQuery,这可能会成功。

    var editor = CKEDITOR.instances.editor1; 
    var jqDocument = $(editor.document.$);
    var documentHeight = jqDocument.height();
    jqDocument.scrollTop(documentHeight);
    

    此方法与之前的答案非常相似。这假定 CKE > 4.x,因为它使用 CKEDITOR.instances 点表示法,但您可以使用此表示法将其与旧版本一起使用:CKEDITOR.instances["editor1"]。在这里,您使用 CKE 实例并从那里获取引用文档。非 jquery 也应该是可行的,但现在不能被打扰。如果你想要原生 JS,请添加评论 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多