我注意到有些网站会阻止用户粘贴数据 - 从密码到用户名/电子邮件等所有内容。 如果不讨论这种做法以及支持/反对这种做法的理由,那么网站阻止我将数据粘贴到文本输入字段的技术手段是什么?
例如,本网站不允许粘贴到“重新输入电子邮件地址”字段。怎么办?我猜有多种方法可以实现此行为?
我在 OS X 10.11.6 上使用 Firefox 62.0.2。
答案1
答案:JavaScript
查看您链接到的页面的源代码。
<input type="text" size="30" maxlength="99" onkeydown="clearErrMsg(event)" onblur="validateEmail(false)" onpaste="SFDOMEvent.preventDefault(event);"
id="fbclc_emailConf"
name="fbclc_emailConf"
value="" aria-required="true">
它已SFDOMEvent.preventDefault(event);
绑定到onpaste
输入元素的事件。preventDefault
将通过阻止默认行为(粘贴)来中止正在采取的操作。其他网站将使用此方法的变体。
答案2
禁用复制,剪切或粘贴到 HTML 字段非常简单:
禁用所有内容的示例:
<input type="text" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" autocomplete=off/>
有关详细信息,请参阅 防止复制、剪切和粘贴到 HTML 输入文本字段。