javascript - 将剪贴板内容作为字符串变量获取

标签 javascript jquery clipboard

尝试将剪贴板内容作为字符串变量获取(例如复制页面网址);

下面的代码在控制台中返回undefined

function get_clip(){
	navigator.clipboard.readText().then(text => {return text;})
	.catch(err => {console.error('Failed to read clipboard contents: ', err);});
}

var str = get_clip();
console.log(str);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

最佳答案

您无法像这样获取剪贴板的值,原因有两个:

  1. 你的函数是异步的,所以当你调用你的函数时 没有调用 return ,您的值等于未定义。您可以使用 回调函数传入 get_clip func 的参数来完成你的工作 与你的结果。
  2. 出于安全原因,您无法以编程方式调用剪贴板 导航器不允许您在没有用户操作的情况下访问剪贴板 与网页。这就是为什么只需单击按钮您就可以访问用户剪贴板。

function get_clip(callBack) {
  navigator.clipboard.readText()
    .then(text => {
      callBack(text);
    })
    .catch(err => {
      console.error('Failed to read clipboard contents: ', err);
    });
}


let callback = function(str) {
  console.log(str);
};

document.querySelector('#showClipboard').addEventListener('click', function() {
  get_clip(callback);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="showClipboard">click me to show clipboard</button>

关于javascript - 将剪贴板内容作为字符串变量获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59698492/

相关文章:

javascript - 使用表格的价格计算器

javascript - 生成一个按钮并将其绑定(bind)到另一个 onclick 函数

ajax - AJAX 请求时禁用按钮

macos - 如何从 OS X 粘贴板/剪贴板中获取 HTML 数据?

javascript计数器不是加1而是加2而不是有意的

javascript - JavaScript Linkage Object() 和 = 引用之间的区别

javascript - 如何在 Safari 中使用 Clipboard API 将图像写入剪贴板

C# 备份和恢复剪贴板

javascript - 'function1(data, function2)' 是如何工作的?

javascript - 在页面加载时启动 simplemodal