2013-03-03 84 views
0

我有一個包含一個文本框,一個Firefox擴展:
XUL:如何保留文本框的值?

<textbox id="exclude-text" flex="1" rows="10" multiline="true" style="min-width: 25em;" wrap="off" value="0" persist="value"/> 

用戶輸入在文本框中輸入一些文字。我需要這段文字才能在會話中堅持不懈。
我發現this有關「持久屬性」的信息,但在我的情況下它不起作用。
有什麼辦法可以使其工作或任何簡單的解決方法?
謝謝!

回答

2

persist屬性只能存儲屬性 - 文本字段的value屬性在輸入文本時不會改變,只有value屬性。據我所知,唯一的解決辦法是與value財產手動保持value屬性同步,這樣的事情:

<textbox id="exclude-text" value="0" persist="value" 
oninput="this.setAttribute('value', this.value);document.persist(this, 'value')"/> 

調用document.persist()是必要的不幸,改變屬性手動通常不會觸發持久性。

供參考:這是bug 111486,一個XUL限制在2001年首次

+0

嗨,弗拉基米爾注意!哇,它的作品!謝謝你這樣一個完整的答案。我已經用「持久性」屬性放棄了我的期望,並使用首選項系統編碼,但您的解決方案更加優雅。一個更好,更簡單的替代偏好,尤其是當你不需要它們時。 – GreenBear 2013-03-04 08:09:22