Javascript 允许键盘快捷键,同时限制iframe中的字符

Javascript 允许键盘快捷键,同时限制iframe中的字符,javascript,jquery,html,iframe,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 &&

我有一个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个字符,同时仍然允许它们使用标记,而不会影响它们可以使用的字符数。这种方法有两个问题我很难解决

  • 当达到限制时,键盘快捷键(如ctrl+c和ctrl+v)将被禁用
  • 当达到限制时,用户无法突出显示文本并键入另一个字符来替换它

  • 我如何着手解决这些问题?

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

        <textarea onchange='this.value=(this.value.length<100)?this.value:"";' onkeypress='return (this.value.length<100);' >
        </textarea>
    
    
    
    可能是重复的,但仍允许使用html标记吗?我通过返回子字符串值尝试了类似的操作,但它最终会删除部分标记,而不是纯文本。@Clint这将允许使用html标记,因为我们没有编写任何逻辑来阻止hml字符。