![](/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.