Closed Bug 581982 Opened 10 years ago Closed 8 years ago
.text returns null instead of the selected text when the selection is in a text box or text area
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:22.214.171.124) Gecko/20100715 Ubuntu/10.04 (lucid) Firefox/3.6.7 Build Identifier: 0.6 I'm trying to get the value of selected text in a text box or a text area, I use the following piece of code after having read the documentation: var selection = require("selection"); . . . console.log("selected text: " + selection.text); When I run and select a piece of text inside an input box or a text area I always get this: info: selected text: null Reproducible: Always Steps to Reproduce: 1. Create the simplest Jetpack SDK example that comes with documentation. 2. Add the following line to the beginning: 3. var selection = require("selection"); 4. Add the following line to the item body: 5. context: "input[type=text], textarea", 6. Add the following line to onClick: 7. console.log("selected text: " + selection.text); 8. cfx run -a firefox 9. Go to any web sites that has an input box, e.g. http://gmail.com 10. Write something into the Username box. 11. Select what you have written. 12. Click on the relevant context menu item. 13. And see that selection.text returns null on the command line. Actual Results: I received null value instead of the text I have selected within the input box. Expected Results: I expected to receive the text I selected.
I can confirm the bug. I'm also attaching a simplified testcase. Is a main.js that adds a simple context menu entry to log the current selection to the console.
Attachment #460265 - Attachment is obsolete: true
Confirming per comment 2.
Status: UNCONFIRMED → NEW
Ever confirmed: true
The Add-on SDK is no longer a Mozilla Labs experiment and has become a big enough project to warrant its own Bugzilla product, so the "Add-on SDK" product has been created for it, and I am moving its bugs to that product. To filter bugmail related to this change, filter on the word "looptid".
Component: Jetpack SDK → General
Product: Mozilla Labs → Add-on SDK
QA Contact: jetpack-sdk → general
The last comment was actually a mistake, sorry :) However, the selection module uses window.getSelection() in order to get the selection, but window.getSelection() doesn't works inside textareas. A possible workaround it could be use selectionStart and selectionEnd on the window.document.activeElement to retreive the text selected, and make it transparent to the user.
Updated the previous testcase in accordance with the addon-sdk changes.
Attachment #460527 - Attachment is obsolete: true
(automatic reprioritization of 1.0 bugs)
Priority: P2 → P1
Target Milestone: 1.0 → 1.1
I used this bug to implement the general support for text fields in the selection module, through several changes: - `selection.text` can be used to get and set in a selection inside a text field - `selection.isContiguous` returns `true` in case of selection in a text field (unfortunately text field selection APIs doesn't support discontiguous selections, so at least this is consistent because we can modify only the first selection in any case). Notice that, as discussed with Myk, `selection.isContiguous` doesn't return `null` anymore, but always a boolean value. If a selection doesn't exists, it returns `false`. - The "select" event now is fired also for text field's selection. - Iterate over a selection object, took in account also the selection in text fields.
Pointer to Github pull-request
Attachment #556950 - Flags: review?(myk)
Comment on attachment 556950 [details] Pointer to Github pull request: https://github.com/mozilla/addon-sdk/pull/234 Looks great! Only a few minor issues, noted in the pull request.
Attachment #556950 - Flags: review?(myk) → review-
(Pushing all open bugs to the --- milestone for the new triage system)
Target Milestone: 1.1 → ---
D'oh! Merged! https://github.com/mozilla/addon-sdk/commit/46177cb8e9c2f63b9c03e6ea21c03641e7599d17 Thanks ZER0!
Status: NEW → RESOLVED
Closed: 8 years ago
OS: Linux → All
Hardware: x86 → All
Resolution: --- → FIXED
Commit pushed to https://github.com/mozilla/addon-sdk https://github.com/mozilla/addon-sdk/commit/6202c386599a7b9d6f6376c1a2dfa2fe2eae3d28 Bug 581982 - selection.text returns null instead of the selected text when the selection is in a text box or text area; r=myk (cherry picked from commit 46177cb8e9c2f63b9c03e6ea21c03641e7599d17)
You need to log in before you can comment on or make changes to this bug.