【问题标题】:How I can access the selected text in IE11 from context menu, and copy to Clipboard如何从上下文菜单访问 IE11 中的选定文本,并复制到剪贴板
【发布时间】:2015-01-14 11:19:57
【问题描述】:

我已经尝试了任何方法来获取上下文菜单的选定文本,但它在 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);
        }  

【问题讨论】:

    标签: javascript internet-explorer contextmenu


    【解决方案1】:

    终于找到了解决办法:(在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);
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-28
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-08
      相关资源
      最近更新 更多