اسکریپتهایی که در حال حاضر برای اضافه کردن امکان تایپ فارسی در فرمهای وب مورد استفاده قرار میگیرند، دارای ۲ مشکل هستند:
اول اینکه بخاطر استفاده از رویدادهای onkeypress یا onclick یا... و اینکه این رویداد/خصوصیتها دیگر در استانداردهای وب جایی ندارند، نمیتوان صفحاتی که امکان تایپ فارسی را در آنها قرار دادهایم، استاندارد کنیم.
مشکل دوم اینکه تنظیم این امکانات با توجه به کارهایی که باید انجام شود، میتواند گیج کننده باشد.
به همهی اینها باید اضافه کرد این نکته را که اکثر اسکریپتهایی که در حال حاضر مورد استفاده قرار میگیرند، باگهای فراوانی دارند. مثلا به صفحه عضویت پرشینبلاگ - به عنوان یک سایت معتبر (احتمالا!) - نگاه کنید: فیلد "نام کاربر" را انگلیسی کنید سپس در فیلد "عنوان وبلاگ" چیزی تایپ کنید. میبینید که بهجای فارسی، کاراکترهای انگلیسی تایپ میشوند! یعنی همهی فیلدها همزمان یا انگلیسی هستند یا فارسی اما دکمههای تغییر زبان همزمان تغییر نمیکنند و ممکن است دکمه، تایپ در حالت فارسی را نشان دهد اما انگلیسی تایپ شود!!!!! (البته حل مشکل این اسکریپت بسیار ساده است اما متاسفانه ما آدمهای بنداز و در رویی هستیم!)
برای اینکه کار را راحتتر کنیم، استاندارد بمانیم و باگ نداشته باشیم(!!!!)، اسکریپت تایپ فارسی را جور دیگری بازنویسی کردم!
این سکریپت در Internet Explorer و خانوادهی GECKO (یعنی Mozilla/FireFox) و همچنین Opera بدرستی و کاملا یکسان کار میکند! ضمن اینکه استفاده از آن بسیار ساده است، به استاندارد بودن صفحات لطمهای نمیزند، باگ هم ندارد(امیدوارم!!!).
استفاده از این اسکریپت فقط ۱+۲ مرحله دارد:
۰. متغیرهای ShowChangeLangButton، KeyBoardError و ChangeDir را براساس نظر خود مقدار دهی کنید:
۱. فایل farsitype.js را به صفحات مورد نظر الحاق کنید! (داخل تگ <head>)
<script language="javascript" src="farsitype.js" type="text/javascript"></script>
۲. به شناسه lang هرکدام از تگهای <input> یا <textarea> که میخواهید دارای امکان تایپ فارسی باشند، مقدار "fa" یا "fa-IR" بدهید! (فقط lang="fa" یا lang="fa-IR" برای این اسکریپت دارای اهمیت است!)
<input type="text" name="whatever" lang="fa" />
<textarea cols="30" rows="7" name="whatever" lang="fa"></textarea>
<input type="text" name="whatever" lang="fa-IR" />
<textarea cols="30" rows="7" name="whatever" lang="fa-IR"></textarea>
تموم شد! اسکریپت به طور خودکار دکمهی تغییر زبان را ایجاد میکند، سایر کارهای مورد نیاز را نیز انجام میدهد!
میتوانید برای فعال/غیرفعال کردن سکریپت از یک چکباکس استفاه کنید وجود این چکباکس اختیاریست:
<input type="checkbox" id="disableFarsiType" />
در این اسکریپت میتوانید علاوه بر دکمه تغییر زبان، از دکمه F8 برای تغییر زبان استفاده کنید. (دقت دارید که دکمه تغییر زبان همزمان تغییر میکند و با فیلدهای دیگر هم تداخلی ندارد!)
| input عادی | |
| input فارسی | |
| textarea فارسی | |
| textarea عادی | |
| یک فیلد دیگر فارسی: | |
| غیرفعال کردن امکانات تایپ فارسی سیستم | |