Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Mozilla Firefox中一键复制文本?_Javascript_Jquery_Google Chrome_Firefox - Fatal编程技术网

Javascript 如何在Mozilla Firefox中一键复制文本?

Javascript 如何在Mozilla Firefox中一键复制文本?,javascript,jquery,google-chrome,firefox,Javascript,Jquery,Google Chrome,Firefox,这段代码在GoogleChrome、Opera、IE11中运行良好。但它在Mozilla firefox和Safari中不起作用。我在下面的字符串中得到错误 “var successful=document.execCommand('copy') 测试副本 CopyTextBlalal 复制 函数copyText(){ var emailLink=document.querySelector(“#text”); var range=document.createRange(); 范围。选择节点

这段代码在GoogleChrome、Opera、IE11中运行良好。但它在Mozilla firefox和Safari中不起作用。我在下面的字符串中得到错误 “var successful=document.execCommand('copy')


测试副本
CopyTextBlalal
复制
函数copyText(){
var emailLink=document.querySelector(“#text”);
var range=document.createRange();
范围。选择节点(emailLink);
window.getSelection().addRange(范围);
试一试{
var successful=document.execCommand('copy');
var msg=successful?'successful':'successful';
log('Copy命令为'+msg');
}捕捉(错误){
log('Oops,无法复制');
}
getSelection().removeAllRanges();
}
自Firefox 41(2015年9月)起,当从某些受信任(用户触发)事件触发时,复制命令在默认情况下应可用,例如,单击按钮将触发什么。来自MDN的提供了更多信息,另请参阅

因此,问题中的代码应该有效。事实上,我测试了一些非常相似的东西(见下面的代码),它对我使用Firefox44非常有效

函数doCopy(){
var textToCopy=document.getElementById('textToCopy');
var range=document.createRange();
范围。选择节点内容(文本复制);
window.getSelection().addRange(范围);
document.execCommand('copy');
}
(功能(){
var el=document.getElementById(“copyTrigger”);
el.addEventListener(“单击”,文档复制,错误);
})();
textarea{显示:块;页边距顶部:1em;宽度:500px;}
大象
复制上面的文字

From:“复制将当前选择复制到剪贴板。对于Mozilla,必须在user.js首选项文件中启用剪贴板功能。有关详细信息,请参阅。”@kaido此解决方案不起作用。Firefox版本37.0.2d您遵循哪个版本?(我自己也没有试过)也一直认为这个答案是最好的解决办法:如果因为我不知道的一些行为,我真的丢失了我保存在我网站中的所有内容,我会非常讨厌你的网站Clipboard@Kaiido根据,capability.policy.*首选项自firefox 29以来已被删除。文件不是最新的。
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Test Copy</title>
    <link href="css/bootstrap-theme.css" rel="stylesheet">
    <link href="css/bootstrap.css" rel="stylesheet">
    <script src="js/bootstrap.js"></script>
    <script src="js/npm.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
        <div id="text">
            Copytextblalalalal
        </div>
        <button id="btnCopy" onclick="copyText()">COPY</button>
    </div>
</div>
<script>
    function copyText() {
        var emailLink = document.querySelector('#text');
        var range = document.createRange();
        range.selectNode(emailLink);
        window.getSelection().addRange(range);

        try {
            var successful = document.execCommand('copy');
            var msg = successful ? 'successful' : 'unsuccessful';
            console.log('Copy command was ' + msg);
        } catch (err) {
            console.log('Oops, unable to copy');
        }
        window.getSelection().removeAllRanges();
    }
</script>
</body>
</html>