Tervehdys kaikille,
Elikkäs minulla on sellainen ongelma, että en saa javascriptin palauttamaan oikeinta keycodeja. Eli kun painan esim. "ä", niin js palauttaa keycode 0 joka on asciina kysymys merkki. Sitten jos painan BackSpacee tulee joku ihan hämärä merkki. Eli olen tekemässä omaa teksti editoria js:llä.
Kysymys siis on, miten js saa palauttamaan oikeat keycodet?
KeyHandleri
this.addChar = function() { this.editElem.innerHTML += String.fromCharCode(keycode); } function keyCodeListener(){ document.onkeydown = checkKeycode; } function checkKeycode(e) { if (window.event) { keycode = window.event.keyCode; window.event.returnValue = false; return false; }else if(e){ keycode = e.which; e.preventDefault(); e.stopPropagation(); } rEdit.addChar(); }
Toinen kysymys on, että miten saan toimimaan div:ssä onFocusen ja onBlurin?
Eli jos teen näin, niin ei toimi
this.printElem.setAttribute('onFocus', 'alert("moi");');
Jos taas laitan onFocusen tilalle onClickin, niin toimii todella hienosti
this.printElem.setAttribute('onClick', 'alert("moi");');
Ääkkösistä en tiedä, mutta muiden näppäinten (mukaanlukien backspace) käyttöä helpottaa huomattavasti joku valmis kirjasto. Itse olen käyttänyt tätä ja todella hyvin on toiminut, ei ole itse tarvinnut yhtään säätää eri selainten kanssa.
Onko tekstialue siis <div>
? Miksei <textarea>
?
Sen takia <div> koska <textareaan> ei pysty määrittää värejä tai esim. boldauksia.
Edit: JS:än keycodelisteneri ei taida tukea ä:tä ja ö:tä ollenkaa. Eli sattuisko joku tietämään, miten onnistuisin tekemään näppäimistö painallus tarkistuksen js:llä tehtyyn editoriin? Eli kun esim painetaan a:ta diviin ilmestyy kirjain "a" jne jne...
Mikset vaas pistä jotain valmista Wysiwyg-editoria (Esim. TinyMCE) , niin ei tarvitse painia lisäksi eri selainversioiden kanssa.
No siis olen käyttänyt tuota FCKEditoria ennen, mutta nytten tuli suuri tarve tehdä oma. Kaiken muun osaan tehdä itse, mutta tuota näppäinten tunnistuksessa menee sormi suuhun...
Aihe on jo aika vanha, joten et voi enää vastata siihen.