I am working on a simple Firefox Extension and I want to get the selected text. I tried this:
var WordCount = {
/* ... */
changeSelected: function() {
var selectedText = this.getSelection();
var words = this.countWords(selectedText);
this.changeStatus(words, " selected");
//alert(selectedText);
},
getSelection: function(e) {
var focused_window = document.commandDispatcher.focusedWindow;
var sel_text = focused_window.getSelection();
return sel_text.toString();
}
}
window.addEventListener("select", function(e) { WordCount.changeSelected(); }, false);
The Problem is, that I dont get the selection with document.commandDispatcher.focusedWindow.getSelection() and I don't know why :(
Your problem is that document.commandDispatcher.focusedWindow
is going to be pointing to a chrome window, where I suspect you actually want a content window. Try replacing that with content.getSelection()
This works in firefox javascripting, so should be OK
window.getSelection().toString();
My guess is that document.commandDispatcher.focusedWindow fails
Is this a normal Firefox extension or is it a JetPack Firefox extension.
In JetPack it would be
var doc = jetpack.tabs.focused.contentWindow;
if (doc.wrappedJSObject){ //This just checks if Firefox has put a XPCNativeWrapper around it for security
win = doc.wrappedJSObject;
}
or you can just access the window directly with window.getSelection()
like dcaunt suggested
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.