Как вставить текст в поля ввода, которые его блокируют?


14

На многих веб-страницах они блокируют копирование / вставку с использованием JavaScript.

Есть ли способ заставить такие входные данные работать как следует (например, включить копирование / вставку)?

Я использую Google Chrome.


Это очень маловероятно. Они не вставляют это без причины, поэтому они также заблокируют любой способ обойти это.
LPChip

Существует множество способов обойти такие сценарии, и специальное расширение для браузера должно решить многие проблемы этой проблемы.
синтагма

1
Если вы уже знаете это, почему вы публикуете вопрос?
LPChip

Я знаю, что это выполнимо, я не знаю ни о каком таком расширении.
синтагма

Если вы используете Firefox, вы можете перейти к about: config и изменить dom.event.clipboardevents.enabled на false. Я не знаю, существует ли что-то подобное в Chrome.
user276648

Ответы:


16

Просто выделите текст и перетащите его в текстовое поле. Попробуй это здесь !

Это работает для меня в Firefox и Chrome.


1
Отличное решение! В Chrome вы можете поместить эту строку в адресную строку «data: text / html, <html contenteditable>» (без кавычек), чтобы получить пустой холст. Я создал закладку для этого. Теперь я могу вставить свой текст на эту пустую страницу, а затем перетащить его в поля, которые необходимо заполнить.
худой

Это лучшее. Попытка запустить js в консоли разработчика доставляла мне головную боль. Большое спасибо!
Millar248

Крутой чувак? спасибо .. ты сэкономил мое время.
Виталий Петров

7

Он хакерский и не будет работать всегда, но в большинстве случаев есть только слушатель, установленный для CTRL+ C/, CTRL+Vи вы можете обойти это, используя CTRL+ INS/ SHIFT+ INSвместо копирования / вставки.

Если они делают что-то глупое, например использование flash для записи пустой строки в буфер обмена в цикле (подергивание), то вам не повезло.


5

Вот расширение Chrome с открытым исходным кодом

https://chrome.google.com/webstore/detail/dont-fuck-with-paste/nkgllhigpcljnhoakjkgaieabnkmgdkb

Если вы заинтересованы в коде https://github.com/jswanner/DontFuckWithPaste


1
Это должен быть правильный ответ. У «Не трахайтесь со вставкой» 465 звезд на Github и практически 5 звезд в Chrome Store - 413 отзывов. Это действительно помогло мне. Благодарность!
Бен

Для меня это расширение помогает, но работает не на всех сайтах.
худой

5

Если вы используете Firefox, я нашел следующее решение. Не уверен, какая минимальная версия требуется, однако.

  1. Перейти к about:config
  2. Искать dom.event.clipboardevents.enabled
  3. Дважды щелкните по нему, чтобы изменить значение на false

Это позволило мне вставить сразу после замены. Мне даже не пришлось перезагружать браузер.


2

Самый простой обходной путь (с точки зрения удобства использования) для Google Chrome - добавить расширение « Разрешить копирование» .


2
Тщательно проверьте это расширение перед установкой. Рецензенты утверждают, что это вредоносное ПО.
Джордж

2

Нажмите F12 и вставьте следующий код в консоль.

var allowPaste = function(e){
  e.stopImmediatePropagation();
  return true;
};
document.addEventListener('paste', allowPaste, true);

1

Вы можете просто отключить JavaScript на странице, используя простой букмарклет. Из. http://javascript.about.com/library/bldis.htm

Если вы создаете закладку, которая содержит следующий скрипт в качестве ссылки (или даже вставляете этот код в адресную строку и нажимаете ввод), тогда он будет срывать весь JavaScript с текущей страницы:

javascript:void(d=document);if(frames.length){alert('Script%20doesn/'t%20work%20in%20frames');}else{while((el=d.getElementsByTagName('script')).length){el[0].parentNode.removeChild(el[0]);};onerror=function(){};d.close();}

Проблема, конечно, в том, что, хотя вы теперь сможете вставить в это текстовое поле, если форма использует JavaScript для отправки формы, это тоже будет нарушено.


1

Решите добавить мое решение к этому (создание букмарклета, вдохновленного этим репо и расширением https://github.com/jswanner/DontFuckWithPaste ) Этот букмарклет также позволит копировать документы, которые отключают его с помощью javascript.

javascript:(function(){
  allowCopyAndPaste = function(e){ 
      e.stopImmediatePropagation(); 
      return true;
  };
  document.addEventListener('copy', allowCopyAndPaste, true);
  document.addEventListener('paste', allowCopyAndPaste, true);
  document.addEventListener('onpaste', allowCopyAndPaste, true);
})();

AllowCopyAndPaste


Пожалуйста, не размещайте один и тот же ответ на несколько вопросов. Если одна и та же информация действительно отвечает на оба вопроса, то один вопрос (обычно более новый) следует закрыть как дубликат другого. Вы можете указать это путем голосования, чтобы закрыть его как дубликат или, если у вас недостаточно репутации для этого, поднять флаг, чтобы указать, что это дубликат. В противном случае настройте свой ответ на этот вопрос, а не просто вставляйте один и тот же ответ в нескольких местах.
DavidPostill

0

На окнах вы можете использовать AutoHotkey

синтаксис:

::whatever::
Send [....text… Use  {enter} for line breaks]
return

пример: если вы наберете, xyzон напишет текст ниже (как если бы он был написан)

::xyz::
Send hi {enter} This a new line  {enter}. Another new line  {enter} whatsoever. {enter} 
return

1
Мне нравится этот: ^ Q :: SendInput, {Raw}% clipboard% CTRL-Q отправляет содержимое клавиатуры в качестве ввода (аналогично вводу)
nijave
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.