گزیر

::گاهنوشتهای حمیدرضا محمدی::



مشترک شوید:

ایمیل خود را در جعبه زیر وارد کنید و دکمه اشتراک را بزنید.

جستجو:

Valid XHTML 1.0 Transitional RSS Feed

لیستهای مرتب با اعداد فارسی

۸۸/۱۰/۱۵

تگ ol (لیست مرتب) در html در CSS ویرایش ۲ توانایی نمایش اعداد به صورت فارسی را ندارد (از اعداد لاتین، رومی و ارمنی(!) پشتیبانی می‌کند اما اعداد را به صورت عربی یا فارسی نمی‌تواند نشان دهد). استایلهای انواع لیستها را در این استاندارد اینجا می‌توانید ببینید. در استاندارد جدیدتر گویا قرار است پشتیبانی از شکل اعداد فارسی هم اضافه شود.

چند وقتی است استقبالهای شاعران را از هم (حافظ از سعدی، حافظ از سلمان، سلمان ساوجی از سعدی و …) را با توجه به میزان مشابهت کلمات ابیات و همینطور با توجه به وزن و قافیهٔ اشعار استخراج کرده‌ام و در گنجور در دسترس قرار داده‌ام. دیروز به نظرم رسید بد نیست این فهرستها را با کمک تگ ol شماره‌گذاری کنم. اما با توجه به نکته‌ای که در پاراگراف قبل گفتم امکان نمایش درست اعداد در متن فارسی وجود نداشت. جستجویی کردم و به این صفحه رسیدم. نویسندهٔ مطلب به کمک جاوا اسکریپت مشکل را حل کرده. با کمک اسکریپت او، اسکریپت ساده‌ای نوشتم که امکان نمایش اعداد لیستهای مرتب را به صورت فارسی در اختیار می‌گذارد:

//Original Code & Author: M Saleh EG[dot1ne] www.dot1ne.com
function faol(){
        ols = document.getElementsByTagName(“ol”);
  for(i=0; i<ols.length; i++){
                 list=faolgetListItems(ols[i]);  
                 lis=faformatListItems(list);
                newOL=document.createElement(“ol”);
         newOL.style.listStyleType = “none”;
                 newOL.style.paddingRight = “0px”;
                 newOL.style.marginRight = “10px”;            
         for(var k=0; k<lis.length; k++)
                        newOL.appendChild(lis[k]);
             newOL.id=ols[i].id;
                 newOL.className=ols[i].className;
                 ols[i].parentNode.replaceChild(newOL, ols[i]);
                       
        } 
}
function  faolgetListItems(ol){
             lis = new Array();
         for(var i=0; i < ol.childNodes.length; i++){
          if(ol.childNodes[i].nodeName == “LI” || ol.childNodes[i].nodeName == “li”){
              ol.childNodes[i].style.direction=“rtl”;
              ol.childNodes[i].style.textAlign=“right”;
                  if(ol.childNodes[i].childNodes[0].className==“dot1_ol”)
                  ol.childNodes[i].removeChild(ol.childNodes[i].childNodes[0]);   
              lis.push(ol.childNodes[i]);
              }
         }
                 return lis;
};        
function faformatListItems(list_items) {
             for(var i=0; i < list_items.length; i++){
         index=i+1;
                 list_items[i].innerHTML = “<span class=\”dot1_ol\” style=\”display:block;float:right;width:20px;\” >” + bshfarsinum(String(index)) + “.  &nbsp;</span>” + list_items[i].innerHTML;
                 }      
                 return list_items;
          };
function bshfarsinum(englishnum)
{
  var result = “”;
  for(var i=0; i<englishnum.length;i++)
 {
   result = result +String.fromCharCode(englishnum.charCodeAt(i)+0×6C0);
 }
 return result;
}

که در نهایت با فراخوانی آن در رویداد onload می‌توان به مقصود رسید:

<script type=“text/javascript” language=“JavaScript” src=“faol.js”></script>
<script type=“text/javascript”>
  window.onload = function() {faol();}
</script>

عملکرد کد را در فایرفاکس ۳.۵ و اینترنت اکسپلورر ۸ آزمایش کردم و مشکلی ندیدم.

استقبالهای حافظ از سعدی






نظر بدهید »

تا به حال کسی نظر نداده.

خروجی آر.اس.اس نظرات این نوشته:»

ارسال دنبالک:»

نظر بدهید:

* ورود مشخصات اختیاری است، پست الکترونیکی نشان داده نمی‌شود.