js 复制功能单独写没有问题,放到ajax内后失败

煎饼果子加仨蛋 2018-08-07 08:42:13
if == 200 内是复制粘贴代码。 放到这个里面后调用失败,求大佬指点下

function share() {
$.ajax({
type: 'GET',
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback:'success_jsonpCallback',
url: 'test.php',
data: {uid : '".$uid."',url : '".$list[0]['url']."'},
success: function (result) {
console.log(result);
if (result.status == 200) {
const input = document.createElement('input');
document.body.appendChild(input);
input.setAttribute('readonly', 'readonly');
input.setAttribute('value', result.url);
input.setSelectionRange(0, input.value.length);
if (document.execCommand('copy')) {
document.execCommand('copy');
console.log('复制成功');
alert('链接已复制,点击去粘贴');
}else{
console.log('复制失败');
alert('复制失败');
}
document.body.removeChild(input);

}else if(result.status == 300){
alert(result.msg);
}else{
alert('失败');
}
}
});
}
...全文
227 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2018-08-08
  • 打赏
  • 举报
回复
ie之外的浏览器 document.execCommand("copy");这个必须在由用户操作触发的点击事件线程中执行。
你在ajax异步的回调函数中执行是不允许的。
你可以把ajax放到 onclick事件中,并且ajax要用同步加载方式async: false
天际的海浪 2018-08-08
  • 打赏
  • 举报
回复
ie之外的浏览器 document.execCommand("copy");这个必须在由用户操作触发的点击事件线程中执行。
你在ajax回调函数中执行是不允许
  • 打赏
  • 举报
回复
引用 1 楼 lqlqlq007 的回复:
错误信息贴出来看看
就是因为没有报错。我才过来问下,
讨厌走开啦 2018-08-07
  • 打赏
  • 举报
回复
错误信息贴出来看看

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧