사용자가 텍스트 영역에서 최대 문자 수에 도달하면 경고를 트리거하려고합니다. 일반적으로 내 플러그인은 사용자 노드 값을 내 플러그인 텍스트 상자에 직접 채 웁니다. 따라서 사용자가 var mymaxlength = 20에 도달하면 경고를 생성하려고합니다.Firefox의 텍스트 영역 노드에 대한 트리거 경고 기능 이벤트 자바 스크립트 XUL
var mymaxlength = 20;
if (nodeName == "textarea" && node.value.length >= mymaxlength) {
// call your popup/alert function
alert('hi, you have reached 20 characters');
}
나는 위의 코드를 시도했지만 오류없이 작동하지 않습니까? 전체 코드에서 일반 경고가 작동하지만 루프 내부의 경고가 작동하지 않습니다. 1. onKeypress에서 경고를 발생시키는 좋은 방법입니까? function (e)? 또는 2. 사용자 노드가 fillText : function (노드)에 20자를 제출 한 경우 경고를 트리거 할 수 있습니까?
제발 도와주세요! 나는 userContent에 대한 경고를 트리거 할 수있는이 기능 fillText : function (node)
에서 :
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 = "";
},
};
}();