如何从上下文菜单访问IE11中的选定文本,并复制到剪贴板
How I can access the selected text in IE11 from context menu, and copy to Clipboard
我已经尝试了任何方法来获取上下文菜单的选定文本,但它在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);
}
最后我找到了解决方案:(在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);
}
}
相关文章:
- 如何将键入的文本从一个输入类型的文本复制到另一个
- Meteor中的文本复制
- 使用SeleniumWebdriver将文本复制到文件时出现编译错误的解决方案
- JavaScript 自动将文本复制到剪贴板
- 将标签文本复制到输入
- 自动建议输入,防止将文本复制到其他输入文本字段
- JavaScript 将文本复制到剪贴板 HTML5 和 Jquery
- 如何在Javascript中将文本复制到剪贴板
- 使用AngularJS将元素文本复制到title属性的干净方法
- Javascript onClick函数-将文本复制到输入值
- ZeroClipboard-将文本复制到剪贴板不起作用
- 如何通过自定义上下文菜单将文本复制到剪贴板(不带flash/加载项)
- 如何从Google Chrome扩展将HTML格式的文本复制到剪贴板
- ZeroClipBoard-将文本复制到剪贴板
- 使用javascript将文本复制到剪贴板
- 将跨度文本复制到表单中的文本字段中
- 单击一个元素:将其文本复制到输入字段
- 将具有相同类的文本复制到剪贴板
- 通过多选将单元格文本复制到剪贴板
- 从网站复制文本,附加链接与文本复制