栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用execCommand(Javascript)将隐藏的文本复制到剪贴板

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用execCommand(Javascript)将隐藏的文本复制到剪贴板

-更新-

document.execCommand()

[1]在Firefox 41之前,需要在user.js首选项文件中启用剪贴板功能。
有关更多信息,请参见Mozilla首选项简要指南。如果不支持或启用该命令,则execCommand引发一个异常而不是返回false。在Firefox41及更高版本中,默认情况下,任何能够弹出窗口的事件处理程序均启用剪贴板功能(半信任脚本) )。

从Firefox 41版开始,现在可以使用。因此,不再需要使用备用广告。


由于浏览器在访问剪贴板方面的行为似乎有所不同,因此我花了一些时间才得以解决。

它与您的解决方案非常相似,但是区别在于创建一个临时元素并用input填充它

value
。这样,我们可以将输入的
display
属性设置为
none

对于使用的 IE ,也有一种解决方法

window.clipboardData

Firefox 根本不允许我访问剪贴板。因此,我必须添加一个

prompt
以让用户手动复制输入值。当然a
prompt
很难看,但是您可以只使用窗口之类的模态,这样做也一样。

由于这似乎是一个棘手的事情,所以我在 Win7(64位)上 进行了测试

Chrome-版本43.0.2357.134 m

IE-版本11.0.9600.17914

和Firefox无关,因为无论如何我都不会允许它访问。

var copyBtn   = $("#copy-btn"),    input     = $("#copy-me");function copyToClipboardFF(text) {  window.prompt ("Copy to clipboard: Ctrl C, Enter", text);}function copyToClipboard() {  var success   = true,      range     = document.createRange(),      selection;  // For IE.  if (window.clipboardData) {    window.clipboardData.setData("Text", input.val());  } else {    // Create a temporary element off screen.    var tmpElem = $('<div>');    tmpElem.css({      position: "absolute",      left:     "-1000px",      top:      "-1000px",    });    // Add the input value to the temp element.    tmpElem.text(input.val());    $("body").append(tmpElem);    // Select temp element.    range.selectNodeContents(tmpElem.get(0));    selection = window.getSelection ();    selection.removeAllRanges ();    selection.addRange (range);    // Lets copy.    try {      success = document.execCommand ("copy", false, null);    }    catch (e) {      copyToClipboardFF(input.val());    }    if (success) {      alert ("The text is on the clipboard, try to paste it!");      // remove temp element.      tmpElem.remove();    }  }}copyBtn.on('click', copyToClipboard);#copy-me {    display:none}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><input type="text" name="Element To Be Copied" id="copy-me" value="foo loves bar"/><button id="copy-btn">Copy</button><br/><br/><textarea placeholder="paste here"></textarea>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号