小编aeo*_*ant的帖子

execCommand('copy')在Ajax/XHR回调中不起作用?

(使用Chrome 44测试)

期望的行为:发出XHR请求,将结果放入文本区域,选择文本,然后复制到剪贴板.

实际行为:成功的XHR请求后,将结果放入文本区域并选择它,但无法将结果复制到剪贴板.但是,如果我在XHR回调之外启动副本,它就可以工作.

示例html页面:

var selectAndCopy = function() {
  // Select text
  var cutTextarea = document.querySelector('#textarea');
  cutTextarea.select();
  // Execute copy
  var successful = document.execCommand('copy');
  var msg = successful ? 'successful' : 'unsuccessful';
  console.log('Cutting text command was ' + msg);
};

var fetchCopyButton = document.querySelector('#fetch_copy');
fetchCopyButton.addEventListener('click', function(event) {
  var xhr = new XMLHttpRequest();
  xhr.open('get', 'http://httpbin.org/ip');
  xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
      if (xhr.status === 200) {
        // Set text
        var textarea = document.querySelector('#textarea');
        textarea.value = …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax copy execcommand

8
推荐指数
2
解决办法
4285
查看次数

标签 统计

ajax ×1

copy ×1

execcommand ×1

html ×1

javascript ×1