滚动到Javascript中的文本位置

时间:2010-04-02 15:15:24

标签: javascript jquery html css

我有一个实时HTML编辑器,左边有一个textarea用于代码输入,右边有一个'预览'DIV,用于包含输入代码的预览。目前,在左窗格中编辑代码时,预览只是位于原来的位置,因此您正在编辑的部分代码通常不在预览的可见区域(特别是涉及图像时)。 / p>

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

这是我到目前为止的页面: http://www.caerphoto.com/rtedit.html 您会在源代码中注意到我有一个(当前未使用过的)matchPreview()函数,该函数根据textarea的滚动位置尝试匹配预览的滚动位置,但显然如果涉及图像或大文本,则两个窗格没有更长的比赛。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

让我将您的任务分解为2个子任务:

  1. 在dom更改时获得通知 你可以像onsubtreemodified那样听取dom的变化。
  2. 见 en.wikipedia.org/wiki/DOM_events

    1. 将元素滚动到视图中
    2. 对此的回答是scrollintoview方法:

      见 www.quirksmode.org/dom/tests/scrollintoview.html

      然而,这可能对你没有多大帮助,因为你在textarea的每次更改时都在更新整个html文档。因为你无法在textarea中获得光标的位置,所以这可能不那么容易。

      对不起伙伴,最后我没有解决方案,但也许我的反思在某种程度上有所帮助。

      祝你好运!

答案 2 :(得分:0)

当我在Firefox中尝试这个时。预览中没有看到换行符;它是否正确?我可以帮忙(最近做了一些similsr ),但是如果删除了换行符就不行......