![](/img/trans.png)
[英]Hide a large element without using display:none or visibility:hidden
[英]Using visibility: hidden and display: none together in CSS?
我想一起使用的原因是我想像display一样隐藏内容:none,而不会像可视性那样保留任何空格:hidden。
同时,我希望在用户从网页复制整个表时不要复制隐藏内容,这不是因为它是敏感信息,而是因为用户隐藏了该字段,因此不希望复制它。 可见性:隐藏不会复制,但显示:没有,所以我很困惑。
有人知道解决方案吗?
编辑:
我最终所做的只是建议的操作,将信息另存为Javascript(因为它始终不是敏感信息),并使用Javascript动态创建/删除。
我认为不给元素以visibility: hidden
可以防止用户复制表中的信息,尽管这可能是浏览器特定的行为。 看看我设置的测试: http : //jsfiddle.net/a9JhV/
Windows 7上的Firefox 3.6.8的结果是
Copy ME! Don't copy me :( Copy ME! Copy ME!
Copy ME! Don't copy me :( Copy ME! Copy ME!
这不能按预期工作。
我已经编写了一些代码,完成了很多工作……在这里看看: http : //jsfiddle.net/a9JhV/7/
它使用jQuery来隐藏和显示表列-实际上是将它们从DOM中删除,而不仅仅是玩弄它们的可见性和其他内容。 呜!
为什么不从页面中删除节点? 您可以使用以下方法完成此操作:
<script type = 'text/javascript' language = 'JavaScript'>
document.getElementById('yourDivId').innerHTML = '';
//OR
document.removeChild(getElementById('yourDivId')); //(I think this is right...document might need to be replaced by the div's parent)
</script>
您应该使用javascript删除“隐藏的” DOM对象,然后在用户需要时重新创建它。 例如,已删除记录中的数据可以存储在会话存储或隐藏输入中。
如果要从源中隐藏元素,请将其放在单独的文本文件中,然后使用类似ajax的调用加载...这将防止html出现在源文件中。
如果您在内容上放置清晰的图像,他们也将无法轻松突出显示该图像(并且通过使用JavaScript,您可能会禁用其执行ctrl + a的功能)
希望有帮助!
创建一个代表表的对象是一个好主意:
var myTable = function(tableName){
// If you want to assign columns dynamically you could create this.addColumn();
this.Columns = new Array(
new Array("row1","row2","row3","row4"),
new Array("row1","row2","row3","row4")
);
this.reBuild = function(){
for (col in this.Columns){
for(row in this.Columns[col]){
// put the cell in the table
}
}
};
};
我没有测试此代码,它只是说明了存储和构建表的要点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.