یک اسکریپت کامل و بدون نقص برای فارسی نویسی مستقل از سیستم عامل در وب :
<!---------------------------------
var lang = 1; // 1: Farsi, 0: English
var keys = new Array(1711,0,0,0,0,1608,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,
1603,1572,0,1548,1567,0,1616,
1571,8250,0,1615,0,0,1570,
1577,0,0,0,1569,1573,0,0,1614,1612,1613,0,0,8249,1 611,
171,0,187,1580,1688,1670,0,1600,
1662,1588,1584,1586,1610,1579,1576,
1604,1575,1607,1578,1606,1605,1574,
1583,1582,1581,1590,1602,1587,1601,1593,1585,1589, 1591,1594,1592);
function FKeyDown (){
var key = window.event.keyCode;
if (key == 145){
if (lang == 0)
{
lang = 1;
return true;
}
else
{
lang = 0;
return true;
}
}
}
function keyConv(){
if (lang == 1)
{
if((event.keyCode > 38) && (event.keyCode < 123)){
event.keyCode = (keys[event.keyCode - 39])? (keys[event.keyCode - 39]): event.keyCode;
}
}
}
function strvalidate_fa(str){
var i, chr;
for(i = 0 ; i < str.length ; i++){
chr = str.charCodeAt(i);
if(!((chr == 32) || (chr >= 1569 && chr <= 1594) || (chr >= 1601 && chr <= 1610) || (chr == 1662) || (chr == 1670) || (chr == 1688) || (chr == 1711))) return false;
}
return true;
}
//<TEXTAREA class=forms onkeypress="keyConv()" onkeydown="FKeyDown()" dir=rtl name=S1 rows=15 cols=84> </TEXTAREA>
//-->