textboxのundo/redo履歴をクリアする

Firefox 2.0 以降であれば、 textbox 要素の editor プロパティから nsIEditor にアクセスし、 nsIEditor の transactionManager プロパティからアンドゥやリドゥについての色々な操作が可能である。
例えばアンドゥ/リドゥの履歴をクリアするには以下のようにすればよい。

document.getElementById("myTextbox").editor.transactionManager.clear();

ちなみに chrome://browser/content/sanitize.js を見ると、

searchBar.textbox.editor.enableUndo(false);
searchBar.textbox.editor.enableUndo(true);

というやり方をしている。これでも同じ結果が得られるようだ。

リファレンス:
Interface Reference – nsIEditor
Interface Reference – nsITransactionManager

ScrapBookのバグBug 13244 – Undo works throughout multiple notes がめでたくFixできそうだ。

TOP

TOP