PDA

View Full Version : بحث در مورد فیلترهای مایکروسافت در مرورگر ها



ehsan2007
جمعه 12 بهمن 1386, 23:36 عصر
سلام به تمامی دوستان
توی یک تاپیک دوستان در مورد فیلتر ها کمی بحث کرده بودن ولی جواب درستی من ندیدم
http://barnamenevis.org/forum/showthread.php?t=83544
فیلترها فقط توی اکسپلورر که مرورگر خود ماکروسافت هست اجرا میشه بیشتر یا شاید همه فیلتر ها مخصوص عکسهای png میباشند که به صورت شیشه ای هستن مثل ویندوز ویستا که بالای هر پنجره پشت زمینه دسکتاپ از توش دیده میشه
توی مرورگر مثل firefox عکس با پسوند png معمولی مانند دیگر عکس ها میشه کار کرد یعنی اگه عکسو بطور عرضی یا طولی پشت ضمینه یک جدول قرار بدیم کار میکنه ولی توی مرورگر اینترنت اکسپلورر چنین کاریرو به صورت معمولی نمیشه کرد یعنی اگه با کد شیوه نامه background-repeat: repeat-x یا repeat-y بکگراند یک جدولو تنظیم کنیم در اکسپلورر فقط خود عکس نشون داده میشه وکدها کار نمیکنه برای اینکه کدها کار بکنه در اکسپلورر باید از فیلترهای میکروسافت استفاده کنیم به عنوان نمونه کد

filter:progid:DXImageTransform.Microsoft.AlphaImag eLoader(src='images/vert_tab_btm_active.png',sizingMethod="scale");
یک فیلتر هست که یک عکس png رو هم به صورت عرضی و هم طولی توی یک صفحه بک گراند یک جدول قرار میده ولی این کد با firefox اجرا نمیشه
کمی که فکر کردم این به ذهنم رسید که ما دوتا کد css برای یک جدول مینویسیم اگه مرورگر اکسپلورر بود کدی که فیلتر داره اجرا بشه واگه firefox بود کد معمولی اجرا بشه ولی حالا توی شناسایی مرورگر به مشکل برخوردم
یک کد قبلا دیده بودم که اگه مرورگر ie5بود css جدا اجرا میشد واگهie6بود کد css معمولی اجرا میشد مثل

<link href="آدرس فایل css معمولی" rel="stylesheet" type="text/css" /><!--[if gte IE 5]><style type="text/css">@import url(آدرس فایل css برای ie5');</style><![endif]-->
حالا این کارو آیا میشه برای firefox اجرا کرد یانه
اگه نمیشه چطور مرورگرو تشخیص بدیم چی هست
اگه دو راه بالا نمیشه
آیا با کد جاوا میشه این چنین کاریرو کرد یا نه
بازم اگه با جاوا نمیشه
فقط یک را میمونه سایت وبگذر چگون تشخیص میده که مرورگر از چه نوعه و اگه بتونیم با asp.net تشخیص بدیم مرورگر چیه کد css میشه با بار گذاری صفحه در فواصل زمانی و استفاده کردن از آجاکس برگرداند

دوستان شما هم اگه فکری به ذهنتون میرسه بگید تا دوتان دیگه در موردش بحث کنن
در ضمن من فقط توی دو مرورگر ie&firefox فیلترهارو امتحان کردم دوستان کسی اگه با مرورگر operaیا مرورگرهای دیگه کار کردن و میدونن چه شکلی اجرا میشه بگن

ehsan2007
جمعه 19 بهمن 1386, 22:42 عصر
کسی نیست جواب بده

javad_hosseiny
شنبه 20 بهمن 1386, 10:01 صبح
نمونه کد جاوا اسکریپتی هست که می توانید نام مرورگر را از طریق آن بدست آورید:
http://www.quirksmode.org/js/detect.html
ولیکن مثلا بیشتر خود من نهایتا در مورد اعمال این نکات (اعمال فیلتر، اجرای css خاص، استفاده از دستورات خود مرورگر (اضافه کردن بوک مارک و ...) ) فقط کنترل می کنم IE هست یا نه (والبته بیشتر روی فایرفاکس اعمال نظر اصلی ام رو انجام می دهم) ) (نمونه کدذیل)

inavigator.appName == "Microsoft Internet Explorer")

Behrouz_Rad
شنبه 20 بهمن 1386, 10:43 صبح
User Agent کاربر رو به دست بیار و بر مبنای اون نوع CSS دلخواهت رو لود کن.

+ IE به هیچ وجه مرورگر خوبی برای تست یک Web App نیست. اگر پروژت رو با Firefox تست کردی و عملکرد اون رو درست دیدی، بدون صحیح عمل کردی :)

موفق باشید.

tabib_m
یک شنبه 21 بهمن 1386, 10:17 صبح
اگر پروژت رو با Firefox تست کردی و عملکرد اون رو درست دیدی، بدون صحیح عمل کردی :)
دیگه اینقدرها هم تند نرو برادر :)
هیچ مرورگری کاملا صحیح نیست :) (حتی اگر حداقل ها رو پشتیبانی کنه!)

Arman_gh
یک شنبه 21 بهمن 1386, 10:57 صبح
احسان جان، اگر در حال یادگیری جاوا اسکریپت نیستی و هدفت از این سوال اینه که چنین افکت‌های را در پروژه‌ی پیاده کنی. شدیدن فریم‌ورک سبک و کارآمد script.aculo.us را بهت پیشنهاد می‌کنم. چون هم افکت‌ها به‌سادگی پیاده‌سازی میشن و هم شما را از سردرد ناسازگاری میان مرورگر‌ها با سازگاری کد نوشته شده در این فریم‌ورک در اغلب مرورگرها، نجات میده. :)

ehsan2007
یک شنبه 21 بهمن 1386, 18:02 عصر
احسان جان، اگر در حال یادگیری جاوا اسکریپت نیستی و هدفت از این سوال اینه که چنین افکت‌های را در پروژه‌ی پیاده کنی.
من جاوااسکریپتو تقریبا یاد دارم اگه میشه یک مثال بزنید و من در مورد فیلترهای ماکروسافت بحث میکنم نه افکتها اگه با نرمافزار Sothink تمامیه افکتها توی مرورگر اینترنت اکسپلورر به زیبایی انجام میشن ولی توی مرورگر های دیگه به زیبایی اینترنت اکسپلورر نیست و شایدم اصلا اجرا نشن
یک کد پیدا کردم و با یکم دستکاری توش تونستم بیش از نصفی از مشکلات فیلترهای مرورگر اینترنت اکسپلور رو حل کنم فقط بعضی از اونارو اجرا نمیکنه

if (window.attachEvent) {
window.attachEvent("onload", alphaBackgrounds);
}
function alphaBackgrounds(){
var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
for (i=0; i<document.all.length; i++){
var bg = document.all[i].currentStyle.backgroundImage;
if (itsAllGood && bg){
if (bg.match(/\.png/i) != null){
var mypng = bg.substring(5,bg.length-2);
document.all[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='"+mypng+"', sizingMethod='crop')";
document.all[i].style.backgroundImage = "url('')";
}
}
}
}

این کدجاوا اسکریپتو به صفحه الحاق میکنید یا میزارین توی صفحه و دیگه توی فایل css به هیچ عنوان از فیلتر استفاده نمیکنید
موفق باشید

Arman_gh
دوشنبه 22 بهمن 1386, 18:33 عصر
من فکر کردم شما می‌خواهی از فیلتر برای این استفاده کنی که افکتی را بسازی. این فریم‌ورک است و با نرم‌افزار sothink بسیار فرق میکنه یک جست و جو کن درباره‌اش می‌فهمی چی میگم.

Arman_gh
یک شنبه 28 بهمن 1386, 17:32 عصر
http://reference.sitepoint.com/css/workaroundsfiltershacks

گمانم به درد بخوره.