Làm cách nào để các trang web chặn chọn văn bản và làm cách nào để bỏ chặn điều đó?


74

Có một trang web ( ví dụ ) bằng cách nào đó chặn việc chọn văn bản. Ngoài ra, nó chặn Ctrl+ Ađể chọn mọi thứ, cũng không có bản sao Copy nào trong menu bật lên.

Những gì tôi đã thử:

Một số trang web sử dụng JavaScript để chặn lựa chọn. Vì vậy, tôi đã vô hiệu hóa tất cả các nguồn JavaScript trong addon không có script trong Firefox. Tôi đã thử cùng một trang web trong Google Chrome với addon Script Safe. Đảm bảo rằng mọi thứ đều bị chặn, vẫn không thể chọn văn bản. Con trỏ chuột vẫn là một mũi tên và không phải là con trỏ văn bản trên toàn bộ trang web.

Được sử dụng about:configđể vô hiệu hóa hoàn toàn JavaScript trong Firefox. Vẫn không có tác dụng.

Tôi đọc được rằng một số trang web sử dụng DIV với màn hình hiển thị kiểu: vì vậy tôi đã sử dụng Inspect để kiểm tra các kiểu của trang web. Không có một đề cập nào về "khối" trên toàn bộ trang web, không phải trong CSS nhúng cũng như trong kiểu đối tượng = -attribut.

Văn bản không phải là hình ảnh hoặc flash hoặc một số canvas canvas. Mọi thứ đều nằm trong thẻ DIV và P nhưng không tìm thấy kiểu nào có thể chặn lựa chọn văn bản.

Làm thế nào trang web vẫn có thể chặn bất kỳ lựa chọn văn bản? Không đề cập đến lý do tại sao các trình duyệt hỗ trợ các hành vi như vậy cả. Tôi chỉ muốn sử dụng một từ hoặc câu đã chọn và muốn tìm kiếm google cho nó bằng cách nhấp chuột phải. Thật khó chịu khi một trang web làm những việc như vậy và buộc tôi phải nhập các thuật ngữ và tên kỹ thuật vào google bằng tay. Nó làm xáo trộn quy trình làm việc của tôi.


8
"Làm thế nào để các trang web chặn đánh dấu văn bản" - Họ đặt style.userSelectthành none.

2
@ Xen2050 Chủ yếu tôi không quan tâm đến việc sao chép văn bản. Tôi chỉ thích khả năng đánh dấu các cụm từ và cụm từ và tìm kiếm nó trên Google chỉ bằng một cú nhấp chuột (từ doubleclick, nhấp chuột phải vào "Tìm kiếm Google ..."). Tôi có thể đi vào nguồn (nếu đó là nguồn sạch) và quét từ đó, sao chép nó, dán vào Google nhưng ... như đã nói đây chỉ là một sự phiền toái. Ai đó muốn sao chép văn bản trang web của bạn dù sao cũng có thể làm điều đó nhưng ai đó chỉ muốn một quy trình làm việc thoải mái bị cản trở.
dùng6329530

122
Chúng ta có thể dành một chút thời gian và thông cảm cho tất cả các nhà phát triển web ảo tưởng ngoài kia, những người nghĩ rằng đây là một biện pháp bảo mật tốt?
MCM Abbey

3
Tôi không biết mức độ phổ biến của thực tiễn nữa, nhưng tôi nhớ rằng việc chạy qua một vài trường hợp hình ảnh một pixel được kéo dài để che toàn bộ trang để tránh sao chép văn bản, v.v. Điều đó và thay đổi con trỏ chuột của tôi thành cầu vồng lấp lánh- ngôi sao kỳ lân cùng với văn bản nhấp nháy ở khắp mọi nơi ...
RIanGillis

27
@MCM Abbey Hoặc tệ hơn, các nhà phát triển biết điều đó thật tồi tệ nhưng được bảo rằng họ phải làm điều đó bằng mọi cách. Hầu hết thời gian họ lo lắng về việc mọi người ăn cắp nội dung. Sau đó, bạn đã có các trang web như SO, những người bị loại bỏ / đánh cắp mọi lúc ... nhưng khả thi về mặt thương mại. Hóa ra việc xa lánh cơ sở người dùng của bạn là không tốt cho kinh doanh. Ai có thể nghĩ?!
corsiKa

Câu trả lời:


81

https://www.angst-panik-hilfe.de/angst-panik.css cho thấy:

body{-webkit-user-select:none;-moz-user-select:-moz-none;
-ms-user-select:none;user-select:none}

Vì vậy, hiệu ứng đó áp dụng cho toàn bộ thẻ BODY.

Tài liệu về CSS này: Mozilla Developer Site: user-select .

Bạn có thể có thể ghi đè lên điều này bằng cách xóa kiểu trong Công cụ dành cho nhà phát triển (nhấn F12trong Firefox hoặc Chrome) - thậm chí bạn có thể tạo một applet JavaScript mà sau khi đầu tư thời gian để thiết lập kiểu này, có thể xóa kiểu đó với ít nỗ lực tức thì hơn phần của bạn (có thể là tiết kiệm thời gian nếu bạn có kế hoạch truy cập trang web nhiều lần).

Tôi cũng muốn thêm ghi chú này: Đây có thể không phải là cách duy nhất để có ít nhất một số hiệu ứng đó. Một cách khác có thể là có một DIVtrang bìa vô hình DIVcó văn bản. Theo cách đó, con trỏ chuột sẽ không biến thành tia I (con trỏ văn bản) vì con trỏ sẽ dựa trên nội dung của phần lớn nhất DIV. ( Ctrl- Acó lẽ sẽ bao gồm văn bản đó, mặc dù.)

Thật khó chịu khi một trang web làm những việc như vậy và buộc tôi phải nhập các thuật ngữ và tên kỹ thuật vào google bằng tay. Nó làm xáo trộn quy trình làm việc của tôi.

Amen! Khi thấy điều này, tôi thất vọng về sự tồn tại của một kiểu CSS như vậy đang được các trình duyệt chính triển khai. Những điều như vậy là khá khó chịu, thực sự!


61
Kiểu user-selectCSS khá hữu ích khi được áp dụng có trách nhiệm. Chẳng hạn, nếu bạn muốn người dùng (đặc biệt là người lớn tuổi) trên màn hình cảm ứng nhấp vào các nút gần văn bản nhãn, bạn không muốn họ đánh dấu văn bản nhãn thay vì nhấp vào nút.
phihag

14
"Theo mặc định" bạn có nghĩa là gì? Cài đặt này chỉ được bật nếu trang web đặc biệt kích hoạt nó, điều đó không giống như "theo mặc định" đối với tôi. Sẽ luôn có những tính năng có thể bị lạm dụng bởi các nhà thiết kế web xấu, bạn không thể làm gì nhiều để ngăn chặn điều đó mà không ảnh hưởng tiêu cực đến những người có lý do chính đáng để sử dụng các tính năng đó ...
Sean Burton

11
@SeanT Một lần nữa, nếu trình duyệt tồn tại để phục vụ người đang xem các trang web, thì công việc của nó là phản hồi lại những gì máy chủ web gửi đi tuy nhiên người dùng nói với nó. Nếu người dùng yêu cầu nó tắt tiếng trang, hoặc không cho phép cửa sổ bật lên hoặc sao chép văn bản, thì trình duyệt sẽ làm như vậy.
Tích lũy

8
Không có người dùng trình duyệt nào sẽ bận tâm đến việc định cấu hình trình duyệt của họ để bật một cách rõ ràng một tính năng như tính năng này, nếu nó không được bật theo mặc định thì về cơ bản nó vô dụng và có thể không được thực hiện. Và nếu bạn đang đề xuất rằng mọi tính năng phải được người dùng kích hoạt rõ ràng, vậy bạn sẽ vẽ đường này ở đâu? Người dùng phải kích hoạt tính năng "hình ảnh" trước khi trang web có thể hiển thị hình ảnh? Tất cả các trình duyệt về cơ bản phải là Lynx cho đến khi người dùng kích hoạt tất cả các tính năng mà họ muốn?
Sean Burton

13
@Acccumulation Tính năng người dùng chọn: không có tính năng nào được sử dụng ở mọi nơi để duy trì kiểu trang web, ví dụ: dừng nền màu xanh xấu xí khi chọn tùy chọn từ danh sách thả xuống. Bạn không cần chú ý vì nó được thực hiện chính xác. Vấn đề ở đây là nó được triển khai theo cách hạn chế đối với người dùng và trình duyệt không có cách nào để phân biệt giữa hai điều này. Do đó, hãy đổ lỗi cho nhà phát triển :)
Sean T

11

Như đã được nêu, cài đặt user-select: nonetrong CSS của trang là những gì vô hiệu hóa lựa chọn văn bản trên một trang. Cách dễ nhất để loại bỏ khối chọn văn bản đó là thông qua tập lệnh người dùng như sau ghi đè cài đặt:

// ==UserScript==
// @name         Force Select
// @version      1.0
// @description  Stop sites from disabling selection of text
// @author       You
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
  'use strict';

  let style = document.createElement('style');
  style.innerHTML = '*{ user-select: auto !important; }';

  document.body.appendChild(style);
})();

Lưu ý: Điều này sẽ áp dụng cho mọi trang nếu được bật, điều này có thể không được mong muốn trong mọi tình huống.

Tập lệnh có thể được cài đặt và dễ dàng bật / tắt bằng trình quản lý tập lệnh người dùng như Violentmonkey , Tampermonkey hoặc Greasemonkey .


9
Đáng nói là bạn có thể cần một tiện ích mở rộng, chẳng hạn như 'greasemonkey' để thêm tập lệnh người dùng.
Stilez

1
This will apply to every page if left enabled, which might not be desirable in all situations.Bạn có thể không chỉ lồng hàm trong một câu lệnh if chỉ thực thi tập lệnh nếu URL khớp với một trang web hoặc mảng trang web cụ thể không?
Hashim

1
@Hashim Điều đó không cần thiết; bạn có thể chỉ định trang nào áp dụng cho một hoặc nhiều @matchcâu lệnh, nhưng điều đó sẽ yêu cầu sửa đổi tập lệnh khi bạn muốn áp dụng cho một trang cụ thể, trừ khi bạn chỉ truy cập một trang web cụ thể hoặc bộ trang web mà bạn luôn muốn sửa đổi. Đối với tập lệnh ví dụ tôi đã đặt nó chung chung bằng cách sử dụng *://*/*làm URL để khớp, vì vậy nó sẽ được áp dụng ở mọi nơi. Nó có thể được bật và tắt từ menu của trình quản lý tập lệnh người dùng.
Herohtar

10

Mở các công cụ dành cho nhà phát triển (F12), thay đổi tab Tab và bỏ chọn các quy tắc CSS sau trong phần thân :

  • người dùng chọn: không có;
  • webkit-user-select: none;

Hình ảnh demo


7

Với Firefox, có một cách thực sự dễ dàng:

View > Page Style > No Style

Trong tiếng Đức:

Ansich > Webseiten-Stil > Kein Stil

nhập mô tả hình ảnh ở đây

Nó cũng hoạt động tuyệt vời để tải xuống các hình ảnh nhúng mà nhấp chuột phải đã bị vô hiệu hóa.


1
Yeap, nó cũng hoạt động trên IE11.
Marco Demaio

4

Bạn có thể nhấn Ctrl+ Pvà lấy những gì bạn cần từ bản xem trước in.

nhập mô tả hình ảnh ở đây


3

Tôi đang sử dụng bút stylus ( https://add0n.com/stylus.html ) và tôi đã tạo một phong cách để áp dụng cho tất cả các trang web và do đó tôi đảm bảo mọi thứ đều có thể lựa chọn:

* {
  -webkit-user-select: auto !important;
  -moz-user-select: inherit  !important;
  -ms-user-select: inherit  !important;
  user-select: auto  !important;
}

Dấu hoa thị là để đảm bảo kiểu không chỉ được áp dụng cho một phần tử css nhất định (như <body>), mà còn cho tất cả các phần tử. Tôi đã gặp trường hợp chặn lựa chọn chỉ được áp dụng cho văn bản nút, do đó, việc tạo một css cho <body>sẽ không có ích.

Tôi sử dụng lựa chọn để dịch ngay lập tức trên các trang web tiếng nước ngoài.


Tôi đã sửa định dạng và khả năng hiển thị của <body>thẻ nội tuyến ; xem superuser.com/help/formatted
Arjan

0

Tôi thích sử dụng " bookmarklets " cho tập lệnh người dùng hoặc tiện ích mở rộng trình duyệt. Hãy thử sử dụng một trong nhiều bookmarklets để tắt CSS và lấy văn bản được yêu cầu

Vì nó có thể làm rối loạn khả năng đọc của trang web, đôi khi tôi mở trang ở một tab khác (nhấp chuột phải vào tab, chọn Sao chép) trước khi xóa kiểu bằng bookmarklet

Bạn cũng có thể dùng thử Google Mobilizer Bookmarklet để chỉ xem văn bản của các trang web


0

Như các câu trả lời khác đã nêu, nó liên quan đến CSS trên phần thân của các trang. Mặc dù bạn có thể chỉnh sửa điều này bằng tay mọi lúc, nếu bạn sử dụng trang web này nhiều, tôi sẽ đề nghị rằng nếu bạn sử dụng Chrome, bạn nên cài đặt tiện ích mở rộng Kiểu .

Sành điệu cho phép bạn tạo CSS bổ sung để áp dụng cho các trang. Nó có thể được sử dụng trên tất cả các trang web. Nó có lợi ích là tự động áp dụng bất cứ khi nào bạn truy cập trang web (vì vậy bạn không cần thêm nó thông qua các công cụ dev trên mỗi lần tải trang).

Sau khi cài đặt, nhấp vào biểu tượng trên thanh công cụ và chọn "Tạo kiểu mới". Nó sẽ tự động tạo mục cho trang web bạn hiện đang truy cập. Sau đó, bạn có thể thêm bất kỳ CSS nào bạn muốn vào trang. Nhưng hãy cảnh báo: một số kiểu có thể không được ghi đè (đặc biệt nếu nó được viết trên chính phần tử, thay vì một lớp CSS).

Trong trường hợp này, bạn có thể sử dụng chức năng nhập và thêm mã dưới đây, điều này sẽ cho phép bạn chọn văn bản trên trang web bạn liên kết đến.

@-moz-document domain("www.angst-panik-hilfe.de") {
  body {
    -webkit-user-select: auto !important;
    -moz-user-select: inherit  !important;
    -ms-user-select: inherit  !important;
    user-select: auto  !important;
  }
}

Thêm tiền tố webkit và ms cho một cái gì đó sẽ chỉ chạy trên firefox là một chút ... dư thừa.
Stephan bijzitter

@StephanBijzitter Đúng, tôi chỉ ghi đè tất cả các kiểu liên quan đến lựa chọn của người dùng đã có trên trang. Nhưng một lần nữa, điều đó có nghĩa là ai đó không sử dụng chrome nhưng với phần mở rộng tương tự có thể dễ dàng sao chép lớp này và có được lợi ích tương tự mà không cần làm việc - và nó không thực sự gây hại cho giải pháp.
Obsidian Phoenix

0

Một số giải pháp được đề xuất có thể là trình duyệt cụ thể, do đó, đáng để đề xuất một vài giải pháp thay thế:

  1. Sử dụng một broswer tôn trọng bạn hơn.

    a. Emacs có trình duyệt emacs-w3mewwđiều đó sẽ luôn cho phép một người chọn văn bản.

    b. Các trình duyệt dựa trên văn bản khác lynx, như , elinksw3m, có thể cho phép một người chọn văn bản, nhưng ngay cả khi không, nếu chạy các chương trình đó trong cửa sổ đầu cuối, người ta có thể chọn văn bản bằng chuột. Và, nếu một người đang sử dụng các chương trình đó từ bên trong tmux, người ta có thể sử dụng tmuxkhả năng sao chép văn bản ngay cả khi không có chuột.

  2. Sử dụng công cụ dòng lệnh để tải xuống toàn bộ url ở định dạng văn bản có thể đọc được.

    a. w3m -dump [your_url] > your_file.txt

    b. lynx -dump [your_url] > your_file.txt. Tôi thường thích cái này vì nó đánh dấu các siêu liên kết là chú thích có thể đọc được!


0

Cài đặt AddOn "Tuyệt đối cho phép nhấp chuột phải và sao chép", cho phép mọi thứ mà AddOns No Script khác không thể.


0

Chỉ cần tạo kiểu css sau :

html, body {
    user-select: text;
}

Có một tiện ích mở rộng có tên là Kiểu cho phép bạn cài đặt mã css (hoặc bất kỳ loại nào khác) trong bất kỳ trang web nào bạn chọn. Chỉ cần nhập mã css ở trên và cho biết trang web nào bạn muốn áp dụng và bạn muốn đi. Tiện ích mở rộng này hoạt động trên Chrome, Yahoo, Firefox và Opera. Nếu bạn tình cờ có mặt trên IE thì bạn đã hết may mắn. Nhưng bạn đã biết rằng bạn không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.