我正在尝试在不使用Flash的情况下复制到剪贴板,如果浏览器不兼容JavaScript方法,我计划通过ZeroClipboard来回退到Flash。
我为按钮添加了一个onClick监听器,代码如下:
$(buttonWhereActionWillBeTriggered).click(function(){
var copyDiv = document.getElementById(inputContainingTextToBeCopied);
copyDiv.focus();
document.execCommand('SelectAll');
document.execCommand("Copy", false, null);
}
并且有一个如下所示的输入字段:
<input type="text" name="Element To Be Copied" id="inputContainingTextToBeCopied" value="foo"/>
目前这个功能可以正常工作,但是设计要求包含被复制文本的字段不可见。我尝试过设置type="hidden"
和style="display: none"
,但都没有成功。两者都导致按钮选择整个页面并将所有内容复制到用户的剪贴板中。
相对自信地说,原因不是基于浏览器的,但以防万一,我正在测试使用Chrome(版本43.0.2357.134(64位))在Mac OS X 10.10.4上。
是否有一种方式可以在隐藏它时保持< input>可见的功能?或者,如果没有备选路线可以采取?
我知道有类似的问题,但没有一个能解决我的问题,要么太老,不实际使用Javascript,或者不符合特定的情况。 这里有一个好答案,适用于任何遇到类似但不那么具体问题的人。