我已尝试过任何方法来获取上下文菜单的选定文本,但它在IE11中无效。 对于上下文菜单添加,我在注册表中添加了一些代码,并在Javascript中添加了一个htm文件。 首先我试过这个:
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已在API中使用window.getSelection();
重新定义所以我尝试了任何变体,window.getSelection ......没有用......
知道如何访问所选文字吗?
我也在搜索如何复制到剪贴板..在chrome中我使用过这个脚本:
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 :(得分: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);
}
}