2010-04-02 80 views
1

我有一个实时HTML编辑器,左侧有一个textarea用于输入代码,右侧有一个'preview'DIV以包含输入代码的预览。目前,在左侧窗格中编辑代码时,预览只是位于预览位置,因此您正在编辑的代码部分通常不在预览的可见区域(特别是涉及图像时)。滚动到JavaScript中的文本位置

我的问题是如何使预览滚动显示当前正在编辑的代码部分?

这里是页我到目前为止: http://www.caerphoto.com/rtedit.html 你会在源发现我有一个(当前未使用)matchPreview()试图匹配基础上的滚动位置预览的滚动位置功能textarea,但很明显,如果涉及图像或大文本,则两个窗格不再匹配。

回答

0

而不是从克隆目标的div尝试使用标记。

0

让我分解你的任务分为2子任务:

  1. 得到当DOM改变 你可以像onsubtreemodified DOM的改变听通知。

看到 en.wikipedia.org/wiki/DOM_events

  • 滚动元件进入视野
  • 这个问题的答案是scrollintoview方法:

    看到 www.quirksmode.org/dom/tests/scrollintoview.html

    豪ver,这可能不会对你有太大的帮助,因为你每更改一次textarea都要更新整个html文档。因为你不能在textarea中获得光标的位置,这可能不是那么容易。

    对不起,最后我没有办法解决,但也许我的反刍在某种程度上有帮助。

    好运!

    +0

    我发现使用一些魔法的jQuery半的解决方案: VAR jqselector =“#preview:含有(''+ esced +''):last“; 这只适用于光标在标签之外,但这是迄今为止我找到的最好的。 – Andy 2010-05-19 18:13:32

    0

    当我在Firefox中尝试这个。预览中没有看到换行符;它是否正确?我也许能帮助(做了一些similsr最近),但如果换行被删除...