簡體   English   中英

如何防止用戶從我的網頁中選擇和復制文本

[英]How to prevent user from selecting and copying text from my webpage

我知道我們可以使用javascript實現此功能,但是在網絡瀏覽器中禁用javascript時,用戶可以輕松復制文本。 使用CSS有什么辦法嗎?

如果您不希望有人復制您的文本,請不要將其放在網絡上。

網絡的來源可見,可以自由閱讀和復制。

即使您可以使用所有CSS,JavaScript或虛構技巧,也不會阻止用戶手動閱讀文本並將其復制到其他文檔/位置。

您可能希望做的最好的事情就是使人們煩惱 ,以免他們復制您的文本。 但是像所有其他事情一樣,持久的人也可以將其完成。

這就是我們人類所做的。

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

無法阻止足夠有決心的人復制您的網站文本。 即使有某種假想的完美方法來阻止復制和粘貼或下載頁面,使其僅被查看而不被保存(沒有),但是只要有足夠的時間和動力,只要真正願意,也可以手動輸入文本。它。

網絡被設計為開放的。 也是一件好事。 從1991年創作的網頁中提取數據並不是特別困難。 嘗試使用相同時代的Microsoft Word文檔執行相同的操作,而不使用Microsoft產品。

類似的問題在這里有一些好的答案,所以我不會覆蓋舊的領域

無論您做什么,用戶仍將能夠查看頁面的源並從那里復制任何內容。 完全阻止它的唯一方法是根本不顯示任何文本(例如,顯示圖像或動態創建對可訪問性不利的圖像)

網絡是開源的,可以免費閱讀,即使使用Java腳本也無法警告人們復制內容,但是您可以通過CSS發出警告。 像下面的把戲。

嘗試這個...

p
{
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

這是防止用戶選擇文本的好方法。 這不是一個壞答案。 例如,如果您在使用Canvas(HTML5)並允許用戶在此畫布上拖放內容的網站上工作; 如果用戶要離開畫布定義的區域,則文本將開始被“選中”。 這很丑。 因此,出於明顯的人體工程學原因,這是一個好方法。

您的客戶以及其他許多客戶正在尋找的東西是不可能的,因為他們不了解網頁的傳輸方式,但是,這些客戶可能會對使用戶“難以”復制文本感到滿意。 在其他一些用例中,可以將標記為不可復制的文本用作有用的功能,例如,您希望用戶可以輕松地復制一些文本而無需復制沒有意義的復制內容,例如元數據,例如時間戳記。

至於前面的答案,它們似乎表明使用css進行此操作的方法是使用user-select css屬性,但是,這可以防止文本看起來像是被選中,但仍會復制到剪貼板。 但是,這是單獨使用CSS可獲得的最好效果,並且可能會阻止某些用戶復制您的內容。

Javascript將使它更進一步,如果不使用開發人員工具,則很難從瀏覽器窗口進行復制。

-webkit-touch-callout: none; ;
-webkit-user-select: none;
-khtml-user-select: none; 
-moz-user-select: none;
-ms-user-select: none; 
user-select: none;

該文本不會被選中,但是,在某些情況下我們可以復制該文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM