【发布时间】:2019-05-10 15:08:13
【问题描述】:
我有一段 Javascript 代码当前调用特定网页,返回数据,然后将其复制到剪贴板。它在 Chrome、Safari 和 Firefox 中运行,但由于某种原因,复制功能在 IE 11 中无法运行。
响应正文正在返回正确的数据,但我似乎无法将该数据获取到剪贴板。代码必须是纯 Javascript,因为它是通过具有一些限制/限制的开发人员门户使用的。本质上,我想避免导入 jQuery 库/使用 jQuery。
function httpGet(theUrl)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
function listener(e) {
e.clipboardData.setData("text/html", xmlhttp.responseText);
e.clipboardData.setData("text/plain", xmlhttp.responseText);
e.preventDefault();
}
document.addEventListener("copy", listener);
document.execCommand("copy");
document.removeEventListener("copy", listener);
return xmlhttp.responseText;
}
}
xmlhttp.open("GET", theUrl, false );
xmlhttp.send();
}
该函数在“onclick”HTML 事件中被调用,该事件根据我的理解正常触发(考虑到正在调用“theUrl”页面并返回数据)。任何关于剪贴板为什么没有获取数据的输入将不胜感激。谢谢!
【问题讨论】:
-
代码必须是纯 Javascript,因为它是通过开发人员门户使用的,但有一些限制/限制。本质上,我想避免导入 jQuery 库/使用 jQuery。据我了解,这利用了一个 jQuery 库。
-
如果你通读代码,实际剪贴板的东西只是纯 JS。
标签: javascript dom internet-explorer-11