1
我遇到了一個非常大的問題,爲了從網頁中以某種方式獲取選定的文本,然後使用contextmenu處理它......當我解決Chrome
,Firefox
和IE11
,我發現我不能得到Firefox
和Internet Explorer
時選定的文本是在輸入框中輸入選定的文本....上下文菜單如果文本是輸入標記/文本框,則JavaScript無法獲取所選文本
...我已經尋找天以某種方式解決,最後我已成功...
這是原始腳本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);
\t clipboard.set(selectionText); //this line copy the selected text to Clipboard
}
但我不知道,我怎麼能解決讓莫名其妙的文字時,它是在一個輸入框... <INPUT> ...</INPUT>
解決方案如下...
什麼是真棒解決方案!很好地輸入!總是爲那些想出問題並回來分享答案的人提供支持! – Noitidart 2015-01-16 03:01:33
#Noitidart謝謝 – RobiGo 2015-02-11 14:08:11