Jak wkleić tekst do pól wejściowych, które go blokują?


14

Na wielu stronach blokują kopiowanie / wklejanie za pomocą JavaScript.

Czy istnieje sposób, aby takie dane wejściowe działały tak, jak powinny (np. Włączyć kopiowanie / wklejanie)?

Używam Google Chrome.


To bardzo mało prawdopodobne. Nie wkładają tego bez powodu, więc będą blokować każdy sposób na obejście go.
LPChip

Istnieje wiele sposobów na obejście takich skryptów, a dedykowane rozszerzenie przeglądarki powinno rozwiązać wielu wariantów tego problemu.
syntagma

1
Jeśli już to wiesz, dlaczego publikujesz pytanie?
LPChip

Wiem, że jest to wykonalne, nie wiem o żadnym takim rozszerzeniu.
syntagma

Jeśli korzystasz z przeglądarki Firefox, możesz przejść do about: config i zmienić dom.event.clipboardevents.enabled na false. Nie wiem, czy coś podobnego istnieje w Chrome.
user276648,

Odpowiedzi:


16

Po prostu zaznacz tekst i przeciągnij go do pola tekstowego. Wypróbuj tutaj !

Działa to dla mnie w przeglądarce Firefox i Chrome.


1
Świetne rozwiązanie! W chrome możesz umieścić ten ciąg w pasku adresu „data: text / html, <html contenteditable>” (bez cudzysłowów), aby uzyskać puste płótno. Stworzyłem do tego zakładkę. Teraz mogę wkleić tekst na tej pustej stronie, a następnie przeciągnąć go w pola wymagające wypełnienia.
cienki

To jest najlepszy. Próba uruchomienia js w konsoli programisty sprawiła mi ból głowy. Wielkie dzięki!
Millar248

Spoko gość? dziękuję .. Zaoszczędziłeś mój czas.
Vitali Petrov,

7

Jest hacky i nie zawsze działa, ale przez większość czasu jest tylko zestaw nasłuchiwania dla CTRL+ C/ CTRL+Vi można go obejść, używając CTRL+ INS/ SHIFT+ INSzamiast kopiowania / wklejania.

Jeśli robią coś głupiego, jak użycie flasha, aby zapisać pusty ciąg do schowka w pętli (drganie), to nie masz szczęścia.


5

1
To powinna być poprawna odpowiedź. Don't Fuck With Paste ma 465 gwiazdek w Github i praktycznie 5 gwiazdek w Chrome Store - z 413 opiniami. To mi naprawdę pomogło. Dzięki!
Ben

Dla mnie to rozszerzenie pomaga, ale nie działa na wszystkich stronach.
cienki

5

Jeśli używasz przeglądarki Firefox, znalazłem następujące rozwiązanie. Nie jestem jednak pewien, jaka minimalna wersja jest wymagana.

  1. Iść do about:config
  2. Szukaj dom.event.clipboardevents.enabled
  3. Kliknij dwukrotnie, aby zmienić wartość na false

To pozwoliło mi wkleić natychmiast po zmianie. Nie musiałem nawet ponownie uruchamiać przeglądarki.


3

Naciśnij klawisz F12 i wklej następujący kod do konsoli.

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

Programowy sposób. dzięki
Jaber Al Nahian

2

Najłatwiejszym obejściem (pod względem przyjazności dla użytkownika) dla Google Chrome byłoby dodanie rozszerzenia Zezwalaj na kopiowanie .


2
Ostrożnie sprawdź to rozszerzenie przed instalacją. Recenzenci twierdzą, że to złośliwe oprogramowanie.
George

1

Możesz po prostu wyłączyć JavaScript na stronie za pomocą prostego bookmarkletu. Od. http://javascript.about.com/library/bldis.htm

Jeśli utworzysz zakładkę zawierającą następujący skrypt jako link (lub nawet wkleisz ten kod do paska adresu i naciśnij klawisz Enter), spowoduje to zerwanie całego kodu JavaScript z bieżącej strony:

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

Problem polega oczywiście na tym, że chociaż teraz będziesz mógł wkleić to pole tekstowe, jeśli formularz użył JavaScript do przesłania formularza, to i on zostanie uszkodzony.


1

Zdecyduj się dodać do tego moje rozwiązanie (tworzenie bookmarkletu zainspirowanego tym repozytorium i rozszerzeniem https://github.com/jswanner/DontFuckWithPaste ). Ta bookmarklet pozwoli również na kopiowanie dokumentów, które wyłączają to za pomocą 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


Nie zamieszczaj tej samej odpowiedzi na wiele pytań. Jeśli te same informacje naprawdę odpowiadają na oba pytania, to jedno pytanie (zwykle nowsze) powinno zostać zamknięte jako duplikat drugiego. Możesz to wskazać, głosując, aby zamknąć go jako duplikat lub, jeśli nie masz wystarczającej reputacji, podnieść flagę wskazującą, że jest to duplikat. W przeciwnym razie dostosuj swoją odpowiedź do tego pytania i nie wklejaj tej samej odpowiedzi w wielu miejscach.
DavidPostill

0

W systemie Windows możesz użyć AutoHotkey

składnia:

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

przykład: jeśli wpiszesz xyz, napisze poniższy tekst (tak jakby został napisany)

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

1
Podoba mi się ten: ^ Q :: SendInput, {Raw}% schowek% CTRL-Q wysyła zawartość klawiatury jako dane wejściowe (podobne do wpisywania)
nijave 16.08.18
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.