javascript - 使用 document.execCommand('copy',false,null) 复制到剪贴板仅适用于 MS 浏览器
问题描述
我有一个列出大量数据的网格。对于每个数据行,我都有一个将特定行复制到系统剪贴板的按钮。
行按钮/链接调用 javascript 方法,在该方法中我调用 MVC 控制器方法并将数据传递给 textarea(应用样式以使其不可见)。
直到几天前,它还可以在所有浏览器上运行(主要需要在 IE、Edge、Chrome 和 Safari 中运行)。现在代码不起作用。
我的javascript方法是这样的:
function copytoclip(id) {
$.get('/controller/details', {
'commentid': id
}, function(data) {
var txt = document.getElementById('<%=txtcontrol.ClientID%>');
txt.value = data;
txt.textContent = data;
txt.select();
try {
//Below line returns false always in Chrome and Safari
var res = document.execCommand('copy', false, null);
if (res) {
alert('Copy to clipboard successful');
} else {
alert('Your browser doesn'
t support clipboard access ');}
}
catch (err) {
alert(err.message);
}
});
}
结果 (res) 在 Chrome 和 Safari 中总是错误的。我尝试将 URL(http://servername:portname - 在 localhost 中运行;即使它在暂存中的 DNS 失败)添加到 Chrome 的受信任站点列表中以进行剪贴板访问,但在静脉中。
谁能指出为什么 execCommand 在 Chrome 和 Safari 中总是返回 false ?
解决方案
推荐阅读
- sql - 更新B表后如何从A表中取一个属性值到B表?
- python - 如何将 2D 数组连接到每个 3D 数组中?
- php - 使用 PHP 在 DocuSign REST API 中重新发送合同
- typescript - 如何让 TypeScript 忽略导入?
- python - pyinstaller:“没有这样的文件或目录”,但程序继续执行
- json - 如何设置项目中文件的路径?
- jquery - 根据单选按钮选择更改标签文本
- javascript - 如何从表单中获取值并显示在文本区域中?
- elasticsearch - Elasticsearch 连接被拒绝(拨号 tcp 172.20.0.6:9200 ) - Articulate v0.21.2 发布
- svg - SVG尺寸控制