如何将文本粘贴到阻止它的输入字段中?


14

在许多网页上,他们使用JavaScript阻止复制/粘贴。

有什么方法可以使这些输入正常工作(例如启用复制/粘贴)?

我正在使用Google Chrome。


它的可能性很小。他们不会无缘无故地这么做,因此他们还将阻止任何方式规避它。
LPChip 2015年

有很多方法可以规避此类脚本,并且专用的浏览器扩展应可以解决此问题的许多警告。
2015年

1
如果您已经知道这一点,为什么还要发布问题?
LPChip 2015年

我知道这是可行的,我不知道任何此类扩展。
2015年

如果使用的是Firefox,则可以转到about:config并将dom.event.clipboardevents.enabled更改为false。我不知道Chrome是否存在类似的功能。
user276648

Answers:


16

只需突出显示文本并将其拖动到文本字段中即可。在这里尝试!

这在Firefox和Chrome中对我有效。


1
很好的解决方案!在chrome中,您可以将此字符串放入地址栏“ data:text / html,<html contenteditable>”(不带引号)以获取空白画布。我为此创建了一个书签。现在,我可以将文本粘贴到该空白页中,然后将其拖动到需要填充的字段中。

这是最好的。试图在开发人员控制台中运行js让我头疼。非常感谢!
Millar248 '19

帅气的男人?谢谢..您节省了我的时间。
维塔利·彼得罗夫

7

它很hacky,不能总是正常工作,但是很多时候只是为CTRL+ C/ 设置了一个监听器CTRL+V,您可以使用CTRL+ INS/ SHIFT+ INS代替复制/粘贴来解决它。

如果他们在做一些愚蠢的事情,例如使用Flash将一个空字符串循环写入剪贴板(抽搐),那么您就不走运了。



5

如果您使用的是Firefox,我发现了以下解决方案。但是,不确定所需的最低版本。

  1. about:config
  2. 搜索 dom.event.clipboardevents.enabled
  3. 双击将其更改为 false

这使我可以在更改后立即粘贴。我什至不必重启浏览器。



2

对于Google Chrome,最简单的解决方法(就用户友好性而言)是添加允许复制扩展名。


2
在安装之前,请仔细审核该扩展名。评论者声称这是恶意软件。
乔治,

1

您可以使用简单的书签在页面上禁用JavaScript。从。http://javascript.about.com/library/bldis.htm

如果您创建一个包含以下脚本作为链接的书签(或者甚至将此代码粘贴到地址栏中,然后按Enter键),那么它将从当前页面中剥离所有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

决定为此添加我的解决方案(制作受此repo和扩展名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

在Windows上,您可以使用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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.