فارسي نويسي يكسان در مرورگرهاي FireFox و NetScape و Opera (والبته IE)

mazoolagh

Active Member
شروع بحث از اينجا بوده : http://forum.persiantools.com/t12492.html
كه چگونه در فبلدهاي متني بدون توجه به نوع مرورگر فارسي بنويسيم. البته جواب اين سوال بنظر خودم استفاده از امكانات خود ويندوز يعني همون alt+shift هست ولي ظاهرا بهر دليل براي خيليها اين جواب خوبي نيست. بهمين دليل كدي رو كه اونجا مطرح شده بود ولي فقط در IE كار ميكرد اصلاح و تكميل كردم كه براي همه مرورگرهاي متعارف كار كنه.
گفتم براي بچه هاي مجيدآنلاين هم كه كلي از اطلاعاتشون استفاده ميكنم بذارم شايد يك مقدار اداي دين بشه (ضمنا امتحان كردم صفحات اين سايت هم فقط در IE فارسي مينويسه!)

براي هر صفحه اي كه خواستين فقط قسمت كدها رو كپي و كليدهاي تبديل زبان و جهت رو براي هر فيلد متني مشابه نمونه پايين اضافه كنين و تابع onkeypress رو هم مشابه همين نمونه براي فيلدتون تعريف كنين. همش همين!
کد:
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript" type="text/javascript">
//===================================================================
var farsi = true ;
var s = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
                  32,33,34,35,36,37,1548,1711,41,40,215,43,1608,45,46,47,48,49,50,51,52,53,54,55,56,57,58,1603,
                  44,61,46,1567,64,1616,1584,125,1609,1615,1609,1604,1570,247,1600,1548,47,8217,1583,215,1563,
                  1614,1569,1613,1601,8216,123,1611,1618,1573,126,1580,1688,1670,94,95,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,60,124,62,1617)
var b = navigator.userAgent.toLowerCase() ;
var msie  = (b.indexOf('msie')>-1)  ? true : false ;
var gecko = (b.indexOf('gecko')>-1) ? true : false ;
var opera = (b.indexOf('opera')>-1) ? true : false ;
//===================================================================
function convert(fld,e) {
	if (farsi) {
		var h =s[((msie) ? event.keyCode : e.which)] ;
		if (msie) event.keyCode = h ;
		if (gecko || opera) {
			fld.value  = fld.value + String.fromCharCode(h) ;
			return false ;
		}
	}
}
//===================================================================
function rtl_ltr(fld,btn) {
	var xfld = document.getElementsByName(fld).item(0)
	if (xfld.style.direction == "ltr") {
		xfld.style.textAlign = "right" ;
		xfld.style.direction = "rtl" ;
		btn.value = "RTL" ;
	}
	else {
		xfld.style.textAlign = "left" ;
		xfld.style.direction = "ltr" ;
		btn.value = "LTR" ;
	}
	xfld.focus() ;
}
//===================================================================
function en_fa(fld,btn){
	farsi = !farsi ;
	if (farsi) { btn.value = "FA" ; }
	else { btn.value = "EN" ; }
	document.getElementsByName(fld).item(0).focus() ;
}
//===================================================================
</script>
<title></title>
</head>
<body>
<form>
<input type="text" name="xx" onkeypress="return convert(this,event)" dir="rtl">
<input type="button" onclick="en_fa('xx',this)" value="FA">
<input type="button" onclick="rtl_ltr('xx',this)" value="RTL"><br>
<textarea name="yy" dir="rtl" rows="10" cols="70" onkeypress="return convert(this,event)"></textarea>
<input type="button" onclick="en_fa('yy',this)" value="FA">
<input type="button" onclick="rtl_ltr('yy',this)" value="RTL"><br>
</form>
</body>
</html>
 

aminir

Member
سلام
مازولاق جان شرمنده كردي عالي بود!!!!!!!!!!!
موفق باشي
 

جدیدترین ارسال ها

بالا