تبلیغات
Center of Generation Modernity - C.G.M - مرکز نسل مدرن - تغییر رفتار صفحات HTML در Firefox
Center of Generation Modernity - C.G.M - مرکز نسل مدرن ایران، افتخار ماست !

توماس ادیسون: "من می دانم که دیر یا زود موفق خواهم شد، چون بتدریج چیزهایی را که نتیجه نمی دهند کنار گذاشته ام!"

درباره وبلاگ
لوگوی وبلاگ

وب سایت آموزشی و تخصصی و سرگرمی مرکز نسل مدرن (CGM) با اهداف و رویکرد های عالی خدمت به هموطنان و کاربران فارسی زبان جهت ارتقای سطح آموزش و محیطی دوستانه جهت پر کردن اوقات فراغت و سرگرمی های سالم در 16 مرداد سال 85 ایجاد گشت.
در وب سایت مرکز نسل مدرن (CGM) همه اعضای آن از جمله مسولان، مدیران، تیم های تخصصی و کاربران گرامی در تلاش بودند که محیطی با کیفیت بالا جهت آموزش و سرگرمی ایجاد نمایند و بتوانند درخواست ها و مشکلات و سایر نیازهای کاربران فارسی زبان را تامین و راهنمایی کنند.
از جمله اهداف و رویکرد های مرکز نسل مدرن (CGM) تولید محتوای الکترونیکی فارسی جهت آموزش و یادگیری کاربران فارسی زبان و کمک افزایش محتوای الکترونیکی فارسی در جامعه جهانی اینترنت نام برد.

نویسندگان وبلاگ
  • » محمد (Pirate) (25)
  • » سینا (Sina) (8)
  • » آرش (N 0 D) (8)
  • » آرین (Snigger) (5)

  • موضوعات مطالب
  • » [عمومی] اخبار (5)
  • » [عمومی] نوشته های آرش (0)
  • » [عمومی] نوشته های آرین (4)
  • » [عمومی] نوشته های سینا (4)
  • » [عمومی] نوشته های محمد (3)
  • » [CGM] تاریخ مصور (3)
  • » [CGM] استراتژی های توسعه (2)
  • » [CGM] گزارش آماری (2)
  • » [CGM] دستاوردهای سایت (1)
  • » [CGM] مشکلات و موانع (1)
  • » [CGM] مطالب برگزیده (1)
  • » [CGM] کاربران نمونه (1)
  • » [CGM] نوشته های کاربران (18)
  • » [CGM] پرسش و پاسخ (2)

  • صفحات جانبی
  • » پیوست 3
  • » پیوست 2
  • » پیوست 1

  • آرشیو ماهانه مطالب


    آمار وبلاگ
  • » کل بازدید :
  • » بازدید امروز :
  • » بازدید دیروز :
  • » بازدید این ماه :
  • » بازدید ماه قبل :
  • » تعداد نویسندگان :
  • » تعداد کل پست ها :
  • » آخرین بازدید :
  • » آخرین بروز رسانی :
  • تغییر رفتار صفحات HTML در Firefox
    نویسنده: آرین (Snigger) پنجشنبه 1 مرداد 1388 04:04 ب.ظ
    موضوع: [عمومی] نوشته های آرین
    برچسب ها: Firefox Firebug Greasemonkey

    سلام
    یکی از مشکلات معمول من در سیستم های اطلاع رسانی و سرویس دهی کشور استفاده شدیدا اعصاب خورد کن از VB Script و یا استفاده صرف از JavaScript های مخصوص IE است!
    این کدها تو Firefox (یا بقیه موتورهای بر پایه Gecko ) کار نمیکنند .
    یک نمونه سایت دانشگاهمه که بعد از رد و بدل شدن چند ایمیل لطف کردن بالاش نوشتن:
    * کاربرگرامی ، بخش اطلاع رسانی تحصیلی تنها از طریق مرور گر وب Internet Explorer قابل استفاده می باشد .
    حالا اگر فرض کنیم همه ملت فقط از سیستمشون برای فیلم دیدن و ... استفاده میکنند خوب احتمالا از ویندوز هم استفاده میکنند و یه IE دم دست دارند.
    اما کسی مثل بنده که از Firefox استفاده میکنه و دسترسی به IE براش کلی دردسر داره و برای دیدن یا سرویس گرفتن از یک سایت نمی صرفه حق دارن انتظار داشته باشن حداقل تو جایی مثل دانشگاه که سرمایه ملی یک کشوره و باید ازاد باشه اونقدر به آزادی اهمیت داده بشه که حداقل Script های Client-Side یه شکل universal و منطبق بر تمام موتورهای موجود باشه!‌ ( جز اینجا اکثر جاهایی که از ASP استفاده میکنند این موضوع را مد نظر دارن - نه مثل بعضی که خوشحال باشن که یا چهارتا کلیک نصف کارشون انجام شد و بگن فقط Net. (!!!) )

    به هر حال یه عتوان یک مثال برای سایت دانشگاهم اینطور میشه از روی این مشکل پرید:


    اقزونه GreaseMonkey رو یه فایر فاکس اضافه میکنیم (که این امکان رو به ما میده تا صفحاتی خاص کد های Javascript اجرا کنیم).

    بعد برای تغییر رفتار صفحه کد هایی مینویسیم (میتونید برای فهم رفتار فعلی صفحه و یافتن جاهایی که باید تغییر کنند از Firebug استفاده کنید):

    UserScript را برای عمل روی این صفحات تنظیم میکنیم:

    http://cyber*.qazviniau.ac.ir/iau/*

    http://cyber*.qiau.ac.ir/*

    http://internetpayment.qazviniau.ac.ir/*

    http://internetpayment.qiau.ac.ir/*

    ابتدا از Login اولیه شروع میکنیم:

    صفحه login یک دکمه داره که تو سط اسکریت submit میشه اما اسکریپت قبل از Submit کاری نمیکنه پس این دکمه میتونه به جای Button بشه Submit ! پس خط زیر را به اسکریپت greasemonkey اضافه میکنیم:

    if(loginbutton=document.getElementById('cmdLogin')) loginbutton.type='submit';

    if برای اینه که چون اسکریپت روی همه صفحات اجرا میشه و همه جا این دکمه (cmdLogin) وجو د نداره خطا نگیریم.

    (پس مشکل Login حل شد!!)

     

    بعد از Login مشکل دکمه هایی هستند که در طول کار باهاشپن برخورد میکنیم و طبق کشفمون (!) از firebug فهمیدیم بخاطر ناقص بودن تابع getForm کار نمیکنند.

    اونها رو با بازنویسی تابع getForm درست میکنیم:

    unsafeWindow.getForm=function(ctl){
        if (!ctl) {
            return;
        }
        if (ctl.tagName == "FORM" || ctl.tagName == "form") {
            return ctl;
        }
        if (ctl.parentElement) {
            return getForm(ctl.parentElement);
        }
        if (ctl.form) {
            return ctl.form;
        }

        
        return;
    }

    بخش Bold رو ما به تابع اضافه کردیم.

    unsafeWindow شی است که به ما دسترسی مسقیم به اشیای صفحه را میدهد. برای اطلاعات بیشتر در مورد آن اینجا رو ببینید.

    میمونه منوهای صفحه که هیچ کدوم کار نمیکنند!!

    برای درست کردن اونا کلی وقت صرف میشه پس بیخیالش میشیم و یه منوی ساده جدید میسازیم!!: این کد رو اضامه میکنیم:

    function printmenu(pmenu,level){
        var out='';
        var i;
        if(pmenu.children){
            if(pmenu.command!='null'){out="<optgroup label='"+pmenu.title+"'>\n";}
            for(i=0;i<pmenu.children.length;i++){
                out+=printmenu(pmenu.children[i],level+1);
            }
            if(pmenu.command!="null"){out+="</optgroup>\n"};
            return out;
        }else{
            return "\n<option onclick='javascript:document.getElementsByName(\"changeMenuHiddenName\")[0].value=\""+pmenu.command+"\";frmChangeMenu.submit();' value='"+pmenu.command+"' >"+pmenu.title+"</option>\n";
        }
    }

    menu_item_obj32=unsafeWindow.menu_item_obj32;
    var list=printmenu(menu_item_obj32,0);
    var AS_EL=document.createElement('select');
    AS_EL.style.position='absolute';
    AS_EL.style.left='450px';
    AS_EL.style.top='10px';
    AS_EL.innerHTML=list;
    AS_EL.dir="rtl";
    document.body.appendChild(AS_EL);

    و به این ترتیب یه Select box به صفحه اضافه میشه تا یشه بجای منو استفاده کرد!:

    والسلام

    پی نوشت : این کدها کامل نیستند و من هرجا لازم بشه چیزی بشه اضافه میکنم . این فقط یه مثال ساده بود تا با اشنایی ایجاد کنم تا اگر لازم شد اینطور رفتار صفحات رو تغییر بدید.

    :آرین


    آخرین ویرایش: جمعه 2 مرداد 1388 01:53 ب.ظ نظرات ()

    زمان و تاریخ

    Content on this page requires a newer version of Adobe Flash Player.

    Get Adobe Flash player




    نظرخواهی وبلاگ
    آیا از نظر شما، مرکز نسل مدرن با وجود فیلترینگ بی دلیل می بایست به کار خود ادامه می داد؟


    آخرین مطالب


    جستجو

    لینکستان


    لینکدونی


    سامانه وبلاگ
    میهن بلاگ
    server monitor



    !Safari Supported   !IE Supported   !FireFox Supported   !Opera Supported
    !Valid CSS   !Valid RSS
    Powered by Mihan Blog (Best in Persians)
    Style & Modifications By : C.G.M Coders Team
    Copyright © 2006-2009, Center of Generation Modernity Group

    صفحه نخست - ATOM - RSS - پست الکترونیک - تماس با ما - بالا