دریافت اطلاعات فازسی از ویندوزهای غیر فارسی

abbasjoon

Member
سلام. روشی وجود داره که میشه از ویندوزهای غیرفارسی هم اطلاعات فارسی گرفت. بدین ترتیب که وقتی داخل text box درحال نوشتن هستید زبانتان روی En ولی فارسی تایپ می کنه. بدین ترتیب حتی در ویندور های فارسی دار هم نیاز نیست که زبان رو از En به Fa تغییر بدید. این روش چه جوریه ؟ اگه میشه راهنمایی کنید.
 
من هم اینو دیدم. مثلا در سایت سنجش.

از جاوا اسکریپت استفاده می شه واسه این کار.
 

X7337X

Member
سلام دوست عزیز

بله میتونید در انجمن جاوا مطرح کنید که جواب سریع تر دریافت کنید

و فکر میکنم چنین چیزی از قبل در انجمن جوا مطرح شده باشه
 
آخرین ویرایش:

shnoit

Well-Known Member
کد جاوای ذیل رو در قسمت head قرار میدید.
HTML:
<script language="Javascript" type="text/javascript">
function storeCaret(textEl) {
	if (textEl.createTextRange) 
	textEl.caretPos = document.selection.createRange().duplicate();

}
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,
   0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
   0x0038, 0x0039, 0x003A, 0x0643, 0x003E, 0x003D, 0x003C, 0x061F,
   0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 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 changeLang() {
    if (lang == 0) {
    lang = 1;
    return true;
  }
  else {
    lang = 0;
    return true;
  }
}

function FKeyDown (txtFrm){
 var key = window.event.keyCode;
 if (key == 145){
    if (lang == 0) {
      lang = 1;
      return true;
    }
    else {
      lang = 0;
      return true;
    }

}

}
function FKeyPress(txtFrm) {
   var key = window.event.keyCode;

  if (key == 13) { window.event.keyCode = 13; return true; }

   if (lang == 1) { // If Farsi
     if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
       window.event.keyCode = 0x200C;
     else
       window.event.keyCode = farsikey[key - 0x0020];
     if (farsikey[key - 0x0020] == 92) {
        window.event.keyCode = 0x0698;
     }
     if (farsikey[key - 0x0020] == 8205) {
        window.event.keyCode = 0x067E;
     }
   }
   return true;
}

function change(obj){
if (lang==0)
lang=1
else
lang=0;
obj.focus();
}
</script>


input های خود را همچین شکلی بزارین:

HTML:
<input name="MajidOnline" id="MajidOnline" type="text" dir="rtl" onKeyPress=FKeyPress(MajidOnline); onKeyDown=FKeyDown(MajidOnline); size="35" >

کار تمام شد.
نکته : هر جا هم که خواستین انگلیسی باشه کافیه تا inputهای خود را عادی ایجاد نمایید.:idea:
 

abbasjoon

Member
مرسی آقا shnoit ، یک سوال دیگه در این مورد. اگه بخواهیم کاربر رو وادار کنیم در فرو فقط عدد تایپ کنه چه تغییراتی لازمه و کجا؟
 

shnoit

Well-Known Member
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script language="JavaScript" type="text/javascript">
<!--
function CheckForm(){
			errors=''
            if ( document.Form.MajidOnline.value =="" ){
			errors+='     لطفا شماره را وارد نمائید'+ ' -' + '\n';
			}
			else 
			{	
				var num2=document.Form.MajidOnline.value.search("[^0-9]")
					if ( (num2>=0)){  
						errors+='           فقط عدد وارد نمائید' + ' -'+'\n';
					}
			}
			
// Show Error	
			if (errors!=""){												
				alert(' !خطاهای ذیل را زیر بررسی نمائید\n'+errors);
				return false;
			}
			else {
				return true;
			}	 
}
//-->
</script>

</head>

<body>
<form onsubmit="return CheckForm();" name="Form" action="page.php" method="post">
<input name="MajidOnline" id="MajidOnline" type="text" size="35" /><br />
<input name="submit"  type="submit" value="Send" />
</form>
</body>
</html>

به عبارت های MajidOnline ، Form و همچنین page.php دقت کن.
 
آخرین ویرایش:

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

بالا