2010-04-02 77 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最近),但如果換行被刪除...