Имах много голям проблем, да получа по някакъв начин избрания текст от уеб страницата и след това да го обработя с помощта на контекстно меню... когато реших за Chrome
, Firefox
и IE11
, установих, че не мога да получа избрания текст в Firefox
и Internet Explorer
когато избраният текст е в поле за въвеждане....
Търсих дни наред да реша някак си и най-накрая успях...
Това беше оригиналният сценарий за Internet Explorer
var parentwin = external.menuArguments
var selectedText = getSel();
function getSel(){
var w=window,d=parentwin.document,gS='getSelection';
return (''+(w[gS]?w[gS]():d[gS]?d[gS]():d.selection.createRange().text)).replace(/(^\s+|\s+$)/g,'');
}
И това за FireFox
var contextMenu = require("sdk/context-menu");
var tabs = require("sdk/tabs");
var clipboard = require("sdk/clipboard");
var {Cc,Ci} = require('chrome');
var simpleGetLibrary = null;
var menuItem = contextMenu.Item({
label: "Get selected text",
context: contextMenu.SelectionContext(),
contentScript: 'self.on("click", function () {' +
' var text = window.getSelection().toString();' +
' self.postMessage(text);' +
'});',
onMessage: function (selectionText) {
console.log(selectionText);
clipboard.set(selectionText); //this line copy the selected text to Clipboard
}
Но нямах представа как мога да реша, за да получа по някакъв начин текста, когато е в поле за въвеждане... <INPUT> ...</INPUT>
Решението е следното...