Firefox Javascript XUL中文本区域节点的触发警报函数事件

Firefox Javascript XUL中文本区域节点的触发警报函数事件,javascript,events,xul,alert,onkeypress,Javascript,Events,Xul,Alert,Onkeypress,如果用户达到文本区域的最大字符数,我想触发警报。 通常我的插件将用户节点值直接填充到我的插件文本框中。因此,如果用户达到var mymaxlength=20,我想生成一个警报 var mymaxlength = 20; if ( nodeName == "textarea" && node.value.length >= mymaxlength ) { // call your popup / alert function

如果用户达到文本区域的最大字符数,我想触发警报。 通常我的插件将用户节点值直接填充到我的插件文本框中。因此,如果用户达到var mymaxlength=20,我想生成一个警报

var mymaxlength = 20;
    if ( nodeName == "textarea" && node.value.length >= mymaxlength ) {

        // call your popup / alert function 
                        alert('hi, you have reached 20 characters');
        }
我已经试过上面的代码了,它没有出现任何错误吗?在我的完整代码中,常规警报正在工作,但循环中的警报不工作? 1.在onKeypress:功能(e)中触发警报是一种好方法吗?或 2.如果用户节点在fillText:函数(节点)中填写了20个字符,是否可能触发警报

请帮助我

这是完整的代码:

 run : function () {
                //alert(content.document.cookie);
                //alert("-"+content.document.cookie+"-");
                var cookieTest = content.document.cookie
                var JSESSIONID = pdees.get_Cookie("JSESSIONID");
                if(verifyConnection){
                    if(JSESSIONID && cookieTest){
                        //var result = verifyUserIdentity(JSESSIONID);
                        var head = content.document.getElementsByTagName("head")[0];
                        var body = content.document.body;
                        //var style = content.document.getElementById("pdees-style");
                        //var allLinks = content.document.getElementsByTagName("pdees");
                        var foundLinks = 0;

                        //extract text element from body
                        if(document.getElementById && document.createTreeWalker && typeof NodeFilter!="undefined"){
                            var tw=document.createTreeWalker(body,NodeFilter.SHOW_TEXT,null,false);
                            lookForpdees(tw);
                        }
                        addJScode();
                        idpdeesbutton=0;
                    }else{
                        alert("You should connect to the Application Environment to be authentified");
                    }
                }else{
                    //var result = verifyUserIdentity(JSESSIONID);
                    var head = content.document.getElementsByTagName("head")[0];
                    var body = content.document.body;
                    //var style = content.document.getElementById("pdees-style");
                    //var allLinks = content.document.getElementsByTagName("pdees");
                    var foundLinks = 0;

                    //extract text element from body
                    if(document.getElementById && document.createTreeWalker && typeof NodeFilter!="undefined"){
                        var tw=document.createTreeWalker(body,NodeFilter.SHOW_TEXT,null,false);
                        lookForpdees(tw);
                    }
                    addJScode();
                    idpdeesbutton=0;
                }
            },

            onKeypress : function (e) {

             var mymaxlength = 20;  
                var node = e.target;
                var nodeName = node.nodeName.toLowerCase();
                //text area cache onKeyPress code
                //alert('hi1');


                if ( nodeName == "textarea" && node.value == "" && e.keyCode == 13 ) {

                  pdees.fillText(node);

                  return;
                }
      if ( nodeName == "textarea" && node.value.length >= mymaxlength ) {

                // call your popup / alert function 
                                alert('hi, you have reached 20 characters');
                }


                // this node is a WYSIWYG editor or an editable node?
                if ( ( nodeName != "html" || node.ownerDocument.designMode != "on" ) && node.contentEditable != "true" )
                  return;

                if ( node.textContent == "" && e.keyCode == 13 ) {
                  pdees.fillText(node);
                  return;
                }

                 if (!node.tacacheOnSave) {
                  pdees.fillText(node);
                }

            },
            onChange : function (e) {
                var node = e.target;
                var nodeName = node.nodeName.toLowerCase();
                //alert("onChange : "+nodeName);
                if ( nodeName != "textarea" )
                return;
                pdees.fillText(node);
            },
            onInput : function (e) {
                var node = e.target;
                var nodeName = node.nodeName.toLowerCase();
                //alert("onInput : "+nodeName);
                // Only for textarea node
                if ( node.nodeName.toLowerCase() != "textarea" )
                  return;

                if ( node.value == "" )
                  return;
                pdees.fillText(node);


            },
            fillText : function (node) {
                nodeSRC = node;

                if ( node.nodeName.toLowerCase() == "textarea" )
     { 
                    //alert('hi');
                  userContent = node.value;
                  //alert(userContent);
                }

                else if ( node.nodeName.toLowerCase() == "html" ) { 
                  userContent = node.ownerDocument.body.innerHTML;
                  //alert(userContent);}
                }
                else // element.contentEditable == true
                  userContent = node.innerHTML;
            },
            emptyNodeSRC : function (node){
                if ( node.nodeName.toLowerCase() == "textarea" ) {
                  node.value = "";
                }
                else if ( node.nodeName.toLowerCase() == "html" ) {
                  node.ownerDocument.body.innerHTML = "";
                }
                else // element.contentEditable == true
                  node.innerHTML = "";
            },

        };
    }();    

最后,我发现了问题,并成功触发mu自定义警报: 在此函数中
fillText:function(node)
可以触发用户内容的警报。所以我做了一个长度并触发了警报

else if ( node.nodeName.toLowerCase() == "html" ) { 

             userContent = node.ownerDocument.body.innerHTML;
             //alert(userContent);
              var myTest = userContent.length;
              if(userContent.length == 30)
              { 
                    alert('Hi, there!');
              }

            }
            else // element.contentEditable == true
              userContent = node.innerHTML;
        },

注意:有关完整代码,请参阅我的问题。

最后,我发现了我的问题,并成功触发mu自定义警报: 在此函数中
fillText:function(node)
可以触发用户内容的警报。所以我做了一个长度并触发了警报

else if ( node.nodeName.toLowerCase() == "html" ) { 

             userContent = node.ownerDocument.body.innerHTML;
             //alert(userContent);
              var myTest = userContent.length;
              if(userContent.length == 30)
              { 
                    alert('Hi, there!');
              }

            }
            else // element.contentEditable == true
              userContent = node.innerHTML;
        },
注:完整代码请参考我的问题