Copy& Paste在Mobile Safari和CodeMirror上不起作用

时间:2012-11-03 17:24:54

标签: javascript clipboard codemirror

我写了以下代码:

function copy() {
  if(window.clipboardData) {
    window.clipboardData.clearData();
    window.clipboardData.setData("Text", document.getElementById('txtacpy').value);
  } 
}

function paste() {
  if(window.clipboardData) {   
    document.getElementById('txtapaste').value = window.clipboardData.getData("Text");
  } 
}

当CodeMirror编辑器聚焦时,我调用:

paste();

但没有任何反应!浏览器是Mobile Safari。如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

大多数浏览器都不支持此功能,因为安全性问题而不允许网页访问剪贴板。这不仅仅是Mobile Safari。大多数浏览器(如Chrome或Firefox)都不会支持您。

有些人使用名为zClip/ZeroClipboard的Flash解决方法,允许复制到剪贴板,但只能直接用户点击Flash对象。这显然不是移动游猎的选择。

如果您只想在页面中移动数据,那么您不必使用系统剪贴板来执行此操作 - 您可以为数据创建自己的保留区域(javascript变量)并放置数据在复制并在粘贴时从那里检索它。然后,使用普通的DOM函数(不是复制/粘贴函数)从字段中获取数据或将数据放入字段中。