2011-08-09 100 views
1

我一直在嘗試使用HTML5畫布開發文本編輯器(作爲個人項目),但是我遇到了實現複製/粘貼/退格功能的問題。我已經研究了大約六個類似這個項目的源代碼,但我仍然沒有找到解決方案。基於畫布的編輯器 - 如何?

任何人都可以推薦一種快速,高效的方式來實現這種功能?

+3

簡短的回答,沒有。畫布完全不適合用作文本編輯器。請參閱[Simon Sarris的答案](http://stackoverflow.com/questions/6336243/using-a-canvas-element-as-a-textarea/6345055#6345055) – Alohci

+0

正如我所說,這是一個個人項目,所以它如果這是一個好主意並不重要。 – Alexander

回答

5

我們使用這種方式:焦點在隱藏的textarea中,所以ctrl-v可以正常工作。在更改文字時,您可以更改畫布圖像。您可以輕鬆同步選擇。您可以綁定textarea的「輸入」事件來捕獲所有的變化:

輸入:當用戶在文本框輸入文本時,發送此事件。只有當顯示的文本會改變時纔會調用此事件,因此當用戶按下不可顯示的按鍵時不會調用此事件。

我認爲,這是最好的,也是唯一正確的方式(你可以在JavaScript中的剪貼板沒有它不行)

+0

這可能只是工作。我必須嘗試一下。謝謝。 – Alexander

+0

「隱藏的textarea」是什麼意思?我應該設置CSS屬性顯示:hidden; ?我可以做到這一點,而不添加textarea元素樹? –