尝试将剪贴板内容作为字符串变量获取(例如复制页面网址);
下面的代码在控制台中返回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>
最佳答案
您无法像这样获取剪贴板的值,原因有两个:
- 你的函数是异步的,所以当你调用你的函数时
没有调用
return
,您的值等于未定义。您可以使用 回调函数传入get_clip
func 的参数来完成你的工作 与你的结果。 - 出于安全原因,您无法以编程方式调用剪贴板 导航器不允许您在没有用户操作的情况下访问剪贴板 与网页。这就是为什么只需单击按钮您就可以访问用户剪贴板。
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/