2015-01-14 31 views
0

我已經嘗試了任何操作來獲取上下文菜單的選定文本,但它在IE11中不起作用。 對於上下文菜單添加,我已經在註冊表中添加了一些代碼,並使用Javascript添加了一個htm文件。 首先,我已經試過這樣:如何從上下文菜單中訪問IE11中的選定文本,並將其複製到剪貼板

var parentwin = external.menuArguments; 
var doc = parentwin.document; 
var sel = doc.selection; 
var rng = sel.createRange(); 
var selectedtext = new String(rng.text); 

以後,我IE11文檔中讀取時,document.selection已經與window.getSelection API中條代替();

所以我曾嘗試任何變體,window.getSelection ......實在不行......

任何想法如何,我可以訪問選定的文本?

而且我也搜索如何,我可以複製到剪貼板。在鉻我已經使用這個腳本:

function copyToClipboard(text){ 
var copyDiv = document.createElement('div'); 
copyDiv.contentEditable = true; 
document.body.appendChild(copyDiv); 
copyDiv.innerHTML = text; 
copyDiv.unselectable = "off"; 
copyDiv.focus(); 
document.execCommand('SelectAll'); 
document.execCommand("Copy", false, null); 
document.body.removeChild(copyDiv); 
     } 

回答

0

最後,我已經找到了解決辦法:(在IE11測試)

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,''); 
} 

parentwin.console.log("the selected text is:"+sel); 
copyToClipboard(selectedText); 


function copyToClipboard(s) {   //only works in IE :(
if (window.clipboardData && clipboardData.setData) { 
    clipboardData.setData('text', s); 
} 
} 
相關問題