如何在WYSIWYG模式下滚动CKEditor?

时间:2011-06-22 14:53:31

标签: javascript ckeditor

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

问:

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

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

2 个答案:

答案 0 :(得分:2)

Olemis

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

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

其中“ifr”是我在运行时向iframe提供的名称。好消息是两个浏览器都支持优秀的开发人员工具和一个可以创造奇迹的js控制台......

现在,CKEditor帧没有正确的id,但是它包含的元素是(在那个demo中它是TD id'ed“cke_contents”)。里程可能会有所不同。这表明你可以用jquery来加剧它。

如果'黑客'正常运作,请告诉我,否则我们希望有人带来一些可行的代码。

此致

答案 1 :(得分:0)

我知道这是一个古老的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,请添加注释:)