ست كردن قلم فارسي TextBox

چطور مي تونم فونت فارسي رو در يك TextBox ست كنم در حاليكه فقط در آن بتوان فارسي نوشت؟ :?:
 
فكر مي كنم درست سئوالم رو مطرح نكردم .منظور من قلم فارسي است درست مثل همين محلي كه الان در آن تايپ مي كنم و نمي تونم انگليسي در اون بنويسم و فقط بايد فارسي بنويسم.
 

amirnezhad

Member
سلام

اول از همه يك فايل JavaScript مثلا به نام farsi.js درست كن و كد زير رو بريز توش
کد:
var lang = 1;	// 1: Farsi, 0: English

// Farsi keyboard map based on ISIRI-2901
var farsikey = [
   0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
   0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
   0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
   0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
   0x066C, 0x0624, 0x200C, 0x0698, 0x064A, 0x064D, 0x0625, 0x0623,
   0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
   0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
   0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
   0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
   0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
   0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
   0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E
];

function FKeyDown() {
  if (window.event.shiftKey && window.event.altKey) { 
    if (lang == 0) { lang = 1; }
    else { lang = 0; }
    return false;
  }
  return true;
}

// change the Farsi
function FKeyPress() {
  var key = window.event.keyCode;
   // Avoid processing if control or higher than ASCII (i.e., in Arabic Windows)
  if (key < 0x0020 || key >= 0x00FF) return;
  if (lang == 1) { //If Farsi
      if (key == 0x005C) { key= 67; };
      if (key == 0x0054) { key= 0x200C; };
      if (key == 0x0060) {  key = 109; };
			if (key != 0x200C) {
        window.event.keyCode = farsikey[key - 0x0020];
			} else {
        window.event.keyCode = key;
			}
  }
 return true;
}

حالا يه فايل HTML توي همون دايركتوري اي كه فايل JavaScript توشه درست كن و اين كد رو بريز توش
کد:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>
<title>Untitled</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="JavaScript" type="text/javascript" src="./farsi.js"></script>
</head>

<body>
<center>
<input type="text" name="txtTest" style="direction: rtl; width: 200px; font-family: nesf, tahoma, arial; font-size: 12px; font-weight: normal;" onkeydown="FKeyDown()" onkeypress="FKeyPress()">
<center>
</body>

</html>

حالا اگه فايل HTML رو توي IE ببيني بايد همه چيز درست باشه!

خلاصه كلام توي اين سه تا نكته است
1) تغيير كدپيج صفحه به UTF-8
کد:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

2) صدا زدن فايل JavaScript
کد:
<script language="JavaScript" type="text/javascript" src="./farsi.js"></script>

3) استفاده از فانكشن هاي FKeyDown و FKeyPress
کد:
<input type="text" name="txtTest" style="direction: rtl; width: 200px; font-family: nesf, tahoma, arial; font-size: 12px; font-weight: normal;" onkeydown="FKeyDown()" onkeypress="FKeyPress()">

نكته جالب اينه كه توي اين حالت با استفاده از كليدهاي ALT و SHIFT (مثل Windowsهاي فارسي) ميشه بين زبانهاي فارسي و انگليسي سويچ كرد (كاري كه توي اين فروم نميشه كرد و من هم به همين دليل واقعا بيچاره شدم تا اين متن رو تايپ كردم! :wink: :( )

بازم مشكلي بود ما در خدمتيم!
قربانت
 

amirnezhad

Member
راستي يادم رفت بگم كه چون اين كار با JavaScript انجام ميشه فكر مي كنم بيشتر به مبحث Client Side ربط داره تا Server Side :wink:

قربانت :D
 
من به چيزهايي كه درباره فارسي كردن تكس باكس گفته بوديد عمل كردم
اما يك مشكل دارم من اطلاعات رو به اين صورتي كه شما گفتيد مي توانم ذخيره كنم
اما در موقع خواندن فونت مطالب به نمايش در آمده خوب نيست
اگه من بخوام فونت اون مطالبي كه در ديتا بسم ذخيره شده است را به فونت ؛ تاهوما؛ تغيير بدم بايد چه كار كنم ؟ ( يا هر فونت ديگه اي)
لطفا به من جواب بدهيد چون براي من خيلي مهمه
با تشكر از راهنمايي هاي شما
 

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

بالا