Як веб-сайти блокують вибір тексту та як його розблокувати?


74

Є веб-сайт ( приклад ), який якимось чином блокує вибір тексту. Також він блокує Ctrl+, Aщоб вибрати все, у спливаючому меню також немає "Копіювати".

Що я спробував:

Деякі сайти використовують JavaScript для блокування вибору. Тож я відключив усі джерела JavaScript у додатку без скрипту у Firefox. Я спробував той самий сайт у Google Chrome із додатком Script Safe. Переконайтесь, що все заблоковано, все ще не можна вибрати текст. Вказівник миші залишається стрілкою, а не текстовим курсором також на всьому сайті.

Використовується about:configдля повністю відключення JavaScript у Firefox. Досі ефекту немає.

Я читав, що деякі сайти використовують DIV з відображенням стилю: block, тому я використовував Inspect для вивчення стилів сайту. На всьому веб-сайті немає жодної згадки про "блок", ні у вбудованому CSS, ні в об'єктному стилі = -attributes.

Текст - це не зображення, не спалах, чи якесь полотно HTML5. Все знаходиться в межах тегів DIV і P, але не знайдено стилю, який може блокувати вибір тексту.

Як веб-сайт все ще може заблокувати будь-який вибір тексту? Не кажучи вже про те, чому браузери взагалі підтримують таку поведінку. Я просто хочу використовувати вибране слово або пропозицію і хочу шукати його в Google за допомогою клацання правою кнопкою миші. Дуже прикро, коли веб-сайт робить такі речі і змушує мене вручну вводити технічні терміни та назви в Google. Це порушує мій робочий процес.


8
«Як зробити веб - сайтів блоку розмітки тексту» - Вони встановлюють style.userSelectв none.

2
@ Xen2050 В основному мені не байдуже копіювати текст. Мені просто подобається можливість маркувати фрази та терміни та шукати їх в Google лише одним клацанням миші (подвійне клацання слова, клацання правою кнопкою миші «Пошук Google ...»). Я міг би зайти в джерело (якщо воно взагалі чисте джерело) і сканувати слово, скопіювати його, вставити в Google, але добре ... як сказано, це просто прикро. Хтось, хто хоче скопіювати текст вашого веб-сайту, може це зробити як завгодно, але той, хто просто хоче, щоб комфортний робочий процес заважав.
користувач6329530

122
Чи можемо ми просто взяти хвилинку і співчути всім брехливим веб-розробникам, які вважають, що це хороший захід безпеки?
MCMastery

3
Я вже не знаю, наскільки поширеною є ця практика, але я пам’ятаю, що я натрапив на кілька примірників розтягування одного піксельного зображення, щоб охопити всю сторінку, щоб запобігти копіюванню тексту тощо. Це і змінило вказівник миші на блискучу веселку - зірки-єдиноріг разом із миготливим текстом скрізь ...
RIanGillis

27
@MCMastery Або ще гірше, розробники, які знають, що це жахливо, але їм кажуть, що їм це все одно доведеться робити. Більшість часу вони турбуються про те, що люди крадуть вміст. Тоді у вас є такі сайти, як ТА, які постійно отримують зішкріб / крадіжку ... але комерційно життєздатні. Виявляється, відчуження вашої користувальницької бази погано для бізнесу. Хто б міг подумати ?!
corsiKa

Відповіді:


81

https://www.angst-panik-hilfe.de/angst-panik.css показує:

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

Отже, цей ефект стосується всього тегу BODY.

Документація на цьому CSS: Сайт розробників Mozilla: вибір користувача .

Можливо, ви могли б це змінити, видаливши стиль в Інструментах для розробників (натисніть F12у Firefox або Chrome) - можливо, ви навіть зможете створити аплет JavaScript, який, вклавши час для налаштування, зможе видалити цей стиль з меншими миттєвими зусиллями на ваша частина (що може економити час, якщо ви плануєте відвідувати сайт кілька разів).

Я також хотів би додати цю примітку: Це, можливо, не єдиний спосіб досягти хоча б певного ефекту. Іншим можливим способом може стати невидима DIVобкладинка, DIVщо містить текст. Таким чином, курсор миші не перетвориться на I-промінь (текстовий курсор), оскільки курсор базуватиметься на вмісті самого верхнього DIV. ( Ctrl- Aмабуть, охоплював би цей текст.)

Дуже прикро, коли веб-сайт робить такі речі і змушує мене вручну вводити технічні терміни та назви в Google. Це порушує мій робочий процес.

Амінь! Побачивши це, я розчарований у існуванні такого стилю CSS, що реалізується основними браузерами. Дійсно, такі речі дуже дратують!


61
Стиль user-selectCSS дуже корисний при відповідальному застосуванні. Наприклад, якщо ви хочете (особливо старші) користувачів на сенсорному екрані, натискаючи кнопки біля тексту етикетки, ви не хочете, щоб вони мітили текст мітки замість натискання кнопки.
фігаг

14
Що ви маєте на увазі "за замовчуванням"? Цей параметр увімкнено лише в тому випадку, якщо веб-сайт спеціально це дозволяє, це не звучить як "за замовчуванням". Завжди знайдуться функції, які можуть зловживати поганими веб-дизайнерами, не можна багато чого зробити, щоб не допустити негативного впливу на тих, у кого є законні підстави використовувати ці функції ...
Шон Бертон

11
@SeanT Знову ж таки, якщо веб-переглядач існує для того, щоб обслуговувати людину, яка переглядає веб-сторінки, його завдання полягає в тому, щоб реагувати на те, що надсилає веб-сервер, однак користувач говорить про це. Якщо користувач каже йому відключити сторінку або заборонити спливаючі вікна або скопіювати текст, браузер повинен це зробити.
Накопичення

8
Жоден користувач браузера не збирається намагатися налаштувати свій браузер, щоб явно ввімкнути таку функцію, як ця, якщо вона не включена за замовчуванням, то вона по суті є марною і може взагалі не бути реалізованою. І якщо ви припускаєте, що кожна функція повинна бути чітко включена користувачем, то де ви проводите лінію? Чи повинен користувач включити функцію "зображення", перш ніж веб-сайт може відображати зображення? Чи повинні всі браузери за замовчуванням бути Lynx, поки користувач не включить усі необхідні функції?
Шон Бертон

13
@ Акумуляція Вибір користувача: жодна функція не використовується повсюдно, щоб підтримувати стиль веб-сторінки, наприклад, зупиняючи некрасивий синій фон при виборі параметра зі спадних списків. Ви просто не помічаєте, оскільки це правильно реалізовано. Проблема тут полягає в тому, що він реалізований обмежувально для користувача, і браузер не має можливості розмежовувати їх. Тому звинувачуйте дияволів :)
Шон Т

11

Як уже було зазначено, встановлення user-select: noneв CSS сторінки - це те, що вимикає підбір тексту на сторінці. Найпростіший спосіб видалити цей блок вибору тексту - через сценарій користувача, як-от наступний, який перекриває налаштування:

// ==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);
})();

Примітка. Це стосується кожної сторінки, якщо її ввімкнено, що може бути небажаним у будь-яких ситуаціях.

Сценарій можна встановити та легко включити / вимкнути за допомогою менеджера сценаріїв користувача, таких як Violentmonkey , Tampermonkey або Greasemonkey .


9
Варто згадати, що вам може знадобитися розширення, наприклад 'greasemonkey', щоб додати сценарії користувачів.
Stilez

1
This will apply to every page if left enabled, which might not be desirable in all situations.Не могли б ви просто вкласти цю функцію в оператор if, який виконує сценарій, лише якщо URL відповідає певному сайту або масиву сайтів?
Хашим

1
@Hashim Це не потрібно; Ви можете вказати, до яких сторінок він застосовується за допомогою одного або декількох @matchвисловлювань, але це вимагатиме зміни сценарію, коли Ви хочете, щоб він застосовувався до певної сторінки, якщо Ви не відвідуєте лише певний сайт або набір сайтів, які Ви завжди хочете змінити. Для прикладу сценарію я зробив його загальним, використовуючи *://*/*як URL-адресу, щоб він відповідав, тому він застосовуватиметься всюди. Його можна включати та вимикати з меню менеджера сценаріїв користувача.
Герохтар

10

Відкрийте інструменти для розробників (F12), перейдіть на вкладку «Елементи» і зніміть прапорці з наступних правил CSS у тілі :

  • вибір користувача: немає;
  • webkit-user-select: немає;

Демонстраційне зображення


7

З Firefox існує дійсно простий спосіб:

View > Page Style > No Style

Німецькою мовою:

Ansich > Webseiten-Stil > Kein Stil

введіть тут опис зображення

Він також чудово працює для завантаження вбудованих зображень, на яких правою кнопкою миші було вимкнено.


1
Так, він також працює на IE11.
Марко Демайо

4

Ви можете натиснути Ctrl+ Pта захопити те, що потрібно з попереднього перегляду друку.

введіть тут опис зображення


3

Я використовую Stylus ( https://add0n.com/stylus.html ), і я створив стиль, який потрібно застосувати до всіх веб-сайтів, і таким чином я гарантую, що все можна вибрати:

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

Зірочка полягає у тому, щоб переконатися, що стиль застосовується не лише до певного елемента css (типу <body>), але до всіх елементів. У мене виникли випадки, коли блокування вибору застосовувалося лише до тексту кнопки, тому створення css для <body>не допоможе.

Я використовую вибір для миттєвого перекладу на веб-сайтах іноземних мов.


Я виправив форматування та видимість вбудованого <body>тегу; дивіться superuser.com/help/formatting
Арджан

0

Я вважаю за краще використовувати " закладки " для сценаріїв користувача або розширень браузера. Спробуйте скористатись однією з безлічі закладок для відключення CSS та захоплення необхідного тексту

Оскільки це може зіпсувати читабельність веб-сторінки, я іноді відкриваю сторінку на іншій вкладці (клацніть правою кнопкою миші, виберіть "Дублікат") перед тим, як видалити стилінг із закладкою

Ви також можете спробувати закладку Google Mobilizer Bookmarklet для перегляду лише тексту веб-сторінок


0

Як було сказано в інших відповідях, це стосується CSS на тілі сторінок. Хоча ви можете редагувати це вручну кожного разу, якщо ви багато використовуєте цей сайт, я б радив, що якщо ви користуєтеся Chrome, ви встановите стильне розширення.

Стильний дозволяє створювати додатковий CSS для застосування до сторінок. Його можна використовувати в усьому Інтернеті. Він має перевагу в автоматичному застосуванні кожного разу, коли ви відвідуєте веб-сайт (тому не потрібно додавати його за допомогою інструментів розробника для кожного завантаження сторінки).

Після встановлення натисніть на піктограму на панелі інструментів і виберіть "Створити новий стиль". Він автоматично створить запис для веб-сайту, який ви зараз відвідуєте. Потім ви можете додати будь-який CSS, який вам подобається, на сторінку. Але будьте попереджені: деякі стилі можуть бути не переборними (особливо, якщо їх написано на самому елементі, а не на CSS-класі).

У цьому випадку ви можете скористатися функцією імпорту та додати код нижче, це повинно дозволяти вам вибрати текст на веб-сайті, на який ви пов’язані.

@-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;
  }
}

Додавання префіксів webkit та ms для чогось, що працюватиме лише у firefox, трохи ... зайве.
Стефан Біцзіттер

@StephanBijzitter Щоправда, я просто перекреслив усі стилі, що стосуються вибору користувача вже на сторінці. Але знову ж таки, це означає, що хтось, що не використовує хром, але з подібним розширенням, може досить легко скопіювати цей клас та отримати ту саму вигоду без роботи - і це не дуже шкодить рішення.
Обсидіан Фенікс

0

Деякі із запропонованих рішень можуть бути специфічними для браузера, тому варто запропонувати кілька альтернативних варіантів:

  1. Використовуйте броузер, який поважає вас більше.

    а. Emacs має браузери emacs-w3mі ewwщо завжди дозволяє вибрати текст.

    б. Інші текстові браузери, такі як lynx, elinksі w3m, можуть дозволити вибору тексту, але навіть якщо ні, якщо запускати ці програми у вікні терміналу, ви можете вибрати текст за допомогою миші. І якщо хтось використовує ці програми зсередини tmux, можна скористатися tmuxвмінням копіювати текст навіть без миші.

  2. Використовуйте інструмент командного рядка, щоб завантажити весь URL у читаному текстовому форматі.

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

    б. lynx -dump [your_url] > your_file.txt. Я зазвичай вважаю за краще цю, тому що вона позначає гіперпосилання як читабельні виноски!


0

Встановіть AddOn "Absolute Enable Right Click and Copy", який дозволяє все, що не може використовувати інші Add Sns.


0

Просто створіть такий стиль css :

html, body {
    user-select: text;
}

Існує розширення під назвою Stylish, яке дозволяє встановити цей (або будь-який інший) код css на будь-який веб-сайт на ваш вибір. Просто введіть вищевказаний код css та скажіть, на якому веб-сайті ви хочете його застосувати, і ви хочете перейти. Це розширення працює на Chrome, Baidu, Firefox та Opera. Якщо вам трапляється на IE, то вам не пощастило. Але ти вже знаєш, що не так.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.