在限制iframe中的字符时允许键盘快捷键

时间:2015-02-13 07:56:32

标签: javascript jquery html iframe

我有一个iframe,用户可以用它来输入和标记带有一些html的文本。但是我想限制他们可以输入的字符数量。

要解决此问题,我使用以下代码:

iframeDocument.onkeypress=function(e){
 if(iframeDocument.body.textContent.length > 99 && e.keyCode != 8 && e.keyCode != 46 && e.keyCode != 40 && e.keyCode !=37 && e.keyCode != 38
 && e.keyCode !=39 && e.keyCode !=17){
 e.stopPropagation();
 e.preventDefault();
 return false;
 }}

这会将它们限制为100个字符,同时仍允许它们使用标记,而不会影响它们可以使用的字符数。这个方法有两个问题我无法解决。

  1. 达到限制时,将禁用ctrl + c和ctrl + v等键盘快捷键。
  2. 当达到限制时,用户无法突出显示文本并键入另一个字符以替换它
  3. 我该如何解决这些问题?

1 个答案:

答案 0 :(得分:0)

即使你限制用户只输入100个字符,他仍然可以通过禁用javascript来打破它。用户还可以使用检查工具编辑javascript或html。所以从客户端来说这不是完全可能的。您还必须在服务器端验证。在你的iframe上你可能有一个textarea,你可以尝试这个。

    <textarea onchange='this.value=(this.value.length<100)?this.value:"";' onkeypress='return (this.value.length<100);' >
    </textarea>