Javascript CTRL+;C不在隐藏状态下工作<;部门>;

Javascript CTRL+;C不在隐藏状态下工作<;部门>;,javascript,jquery,css,html,copy-paste,Javascript,Jquery,Css,Html,Copy Paste,我希望有一个功能,用户只需单击一个按钮并按下CTRL+C,就可以复制特定内容 如果我不将style=“display:none”放入我的divToCopy,那么下面的操作就可以了。但是,当我放置样式时,CTRL+C将不再起作用 var剪贴板=函数(){ var剪贴板={}; clipboard.cssStyle=“”; clipboard.cssClass=“”; clipboard.targetId=“”; clipboard.highlight=函数(targetId){ //备份目标di

我希望有一个功能,用户只需单击一个按钮并按下CTRL+C,就可以复制特定内容

如果我不将
style=“display:none”
放入我的divToCopy,那么下面的操作就可以了。但是,当我放置样式时,CTRL+C将不再起作用

var剪贴板=函数(){
var剪贴板={};
clipboard.cssStyle=“”;
clipboard.cssClass=“”;
clipboard.targetId=“”;
clipboard.highlight=函数(targetId){
//备份目标div的样式
clipboard.csssstyle=$(“#”+targetId).attr('style');
clipboard.cssClass=$(“#”+targetId).attr('class');
//创建一个范围内的选择
getSelection().removeAllRanges();
if(window.getSelection){
console.log(“已选择”);
var节点=document.getElementById(“divToCopy”);
var range=document.createRange();
控制台日志(范围);
范围。选择节点内容(节点);
getSelection().removeAllRanges();
window.getSelection().addRange(范围);
}
//突出显示
$(“#”+targetId).css(“背景色”、“黄色”);
};
clipboard.copyWithStyle=函数(targetId){
var toCopy=$('#'+targetId).html();
$('#divToCopy').html(toCopy);
clipboard.targetId=targetId;
剪贴板。高亮显示(targetId);
};
clipboard.copyNoStyle=函数(targetId){
var toCopy=$('#'+targetId).html();
$('#divToCopy').html(toCopy);
$(“#divToCopy*”).removeAttr('style');
$(“#divToCopy*”).removeAttr('class');
clipboard.targetId=targetId;
剪贴板。高亮显示(targetId);
};
$(“#divToCopy”).bind('copy',function(){
$(“#”+clipboard.targetId.attr('style',clipboard.csssstyle);
$(“#”+clipboard.targetId.attr('class',clipboard.cssClass);
});
返回剪贴板;
};
$(文档).ready(函数(){
var c=剪贴板();
$(“#以样式复制”)。单击(函数(事件){
c、 copyWithStyle(“内容”);
});
$(“#不复制样式”)。单击(函数(事件){
c、 抄袭风格(“内容”);
});
});


泰勒·斯威夫特的《红色》
  • 一个
  • 两个
  • 三,
  • ~!@$%^&*()______+{}[]:";' ?,./”
合并 蓝色 红色 绿色 紫罗兰色

我们不需要用CSS隐藏元素,只需用
位置:绝对将其移出屏幕即可
左:-9999px

var剪贴板=函数(){
var剪贴板={};
clipboard.cssStyle=“”;
clipboard.cssClass=“”;
clipboard.targetId=“”;
clipboard.highlight=函数(targetId){
//备份目标div的样式
clipboard.csssstyle=$(“#”+targetId).attr('style');
clipboard.cssClass=$(“#”+targetId).attr('class');
//创建一个范围内的选择
getSelection().removeAllRanges();
if(window.getSelection){
console.log(“已选择”);
var节点=document.getElementById(“divToCopy”);
var range=document.createRange();
控制台日志(范围);
范围。选择节点内容(节点);
getSelection().removeAllRanges();
window.getSelection().addRange(范围);
}
//突出显示
$(“#”+targetId).css(“背景色”、“黄色”);
};
clipboard.copyWithStyle=函数(targetId){
var toCopy=$('#'+targetId).html();
$('#divToCopy').html(toCopy);
clipboard.targetId=targetId;
剪贴板。高亮显示(targetId);
};
clipboard.copyNoStyle=函数(targetId){
var toCopy=$('#'+targetId).html();
$('#divToCopy').html(toCopy);
$(“#divToCopy*”).removeAttr('style');
$(“#divToCopy*”).removeAttr('class');
clipboard.targetId=targetId;
剪贴板。高亮显示(targetId);
};
$(“#divToCopy”).bind('copy',function(){
$(“#”+clipboard.targetId.attr('style',clipboard.csssstyle);
$(“#”+clipboard.targetId.attr('class',clipboard.cssClass);
});
返回剪贴板;
};
$(文档).ready(函数(){
var c=剪贴板();
$(“#以样式复制”)。单击(函数(事件){
c、 copyWithStyle(“内容”);
});
$(“#不复制样式”)。单击(函数(事件){
c、 抄袭风格(“内容”);
});
});


泰勒·斯威夫特的《红色》
  • 一个
  • 两个
  • 三,
  • ~!@$%^&*():“;”?,./”
合并 蓝色 红色 绿色 紫罗兰色

而不是
显示:无使用可见性:隐藏这可能适合您。

不要使用:

display: none;
visibility: hidden;
使用:


您是在询问剪贴板复制吗?
display:none
将其从dom中取出,因此它不会在那里进行复制。为什么ctlr+c复制隐藏内容?只要添加代码的相关部分,使用JSFIDLE就可以了。还请记住,您可以使用snipplets。在firefox中不为我复制任何内容。尽管您的css工作正常:在输出中按ctr+a然后按ctr+c确实会复制定位文本只需按其中一个按钮,然后按ctr+c对我有效。在Firefox上。你能补充一些关于你的解决方案为什么有效的评论吗?
width: 1px;
height: 1px;
overflow: hidden;