ورود

View Full Version : آموزش برای آجاکس نویسان



ehsan2007
جمعه 11 آبان 1386, 19:59 عصر
توی این تاپیک میخوام به درخواست یکی از دوستان کدی رو بگذارم که بیشتر برای کسانی که آجاکس کار میکنند بدرد میخوره چون تمامی فرم هاشون میتونن توی یک صفحه طوری بسازن که بازدید کننده فرم هاشونو نبینه
ابتدا ضمیمه رو دانلود کنید سپس این مطلبو بخونید تا متوجه همه چیز بشین
سه تا تابع جاوا اسکریپت داریم که میتونیم باحاش هر چند تا پنجره توی یک صفحه وب بسازیم بدون اینکه کسی ببینه به وسیله امکانات layer و یک کلاس از css
ابتدا به تعداد پنجره های مورد نیازتون layer بسازید توجه داشته باشید که لایه ها را با نامهای به صورت زیر بسازید
expando1وexpando2وexpando3..... اگر میخواهید نام دیگری بگذارید باید کد تابعی که میخواد پارامترو بفرسته رو عوض کنید
سپس این کلاس css رو به کد لایه اضافه کنید تا هنگامی که در صفحه مرورگر layer ها نامرئی بشن

<style type="text/css">
.expOuter {position: absolute; top: -315px; display: none; width: 511px; height: 315px;}
</style>
که به این صورت به کد لایه اضافه میشه
class="expOuter"
پس از اضافه کردن هر جای از صفحه که مثل کد زیرو بگذارید لایه شما با کلیک کرد روی اون نشون داده میشه

<a onclick="javascript: showExp('expando', '3', '3');" href="javascript:void(0)">برنامه نویس</a>

پارامتر اول اسم لایه رو میفرسته که شما میتونید عوضش کنید پارامتر دوم تعداد کل لایه های موجود میفرسته به تابع چون چندین پنجره با هم باز نشه و پارامتر سوم سومین پنجره که مال همین لایه است رو میفرسته پس از پارامتر آخر فهمیدیم که اسم این لایهexpando3 هست منظورم همون id
خوب اینم توابع جاوا که اگه یکم جاوااسکریپت یاد داشته باشید همرو میفهمید

function showExp(nodeID, nodeCount, nodePosition)
{
for (i = 1; i <= nodeCount; i++)
{
if (i == nodePosition)
show(nodeID + i);
else
hide(nodeID + i);
}
}
function show(displayItem)
{
var dItem = document.getElementById(displayItem);
dItem.style.display = 'inline';
}
function hide(displayItem)
{
var dItem = document.getElementById(displayItem);
dItem.style.display = 'none';
}

خوب برای نامرئی کردن پنجره یا همون لایه باید کد زیر رو با نام لایه به تابعhide بفرستید که با کد زیر این کار رو انجام میدیم

<a href="javascript: void(0);" onclick="javascript: hide('expando3');"><img border="0" src="m.gif" style="height: 41px; width:56px"></a>

خوب تمام شد حالا شما میتونید هر چند تا پنجره که بخواهید بسازید و فرمهای هر بخش رو در همون پنجره قرار بدید مثل لینک باکسی که خودم درست کردم میتونید برید ببینید و منظورمو بفهمید
www.box.irking.ir (http://www.box.irking.ir)
پیروز و موفق باشید

ehsan2007
دوشنبه 14 آبان 1386, 18:55 عصر
راستی این فیلترو کسی نمیدونه چه شکلی توی فایر فوکس فعالش کرد


<divstyle="position:absolute;left:0;z-index:-1;width:100%;height:100%;filter:progid:DXImageTran sform.Microsoft.AlphaImageLoader(src='http://irking1.persiangig.com/linkbox/overlay_25x25.png',sizingMethod=&quot;scale&quot;);">

برید به این آدرس www.box.irking.ir (http://www.box.irking.ir/)
با اینترنت اکسپلورر کار میکنه ولی فایرفوکس نه
و اگه کد بالارو بردارم و توی استایل repat-y بگزارم توی اینترنت اکسپلورر یک عکسه و توی فایرفوکس همش

m.hamidreza
سه شنبه 15 آبان 1386, 10:23 صبح
البته کاش این رو تو یه تاپیک جدا در قسمت طراحی صفحات مطرح میکردی !
منم دنبال اجرای این فیلتر ها توی browser های غیر IE زیاد گشتم آخر به این نتیجه رسیدم که اکثر این فیلتر ها منحصرا تو IE درست کار میکنن !

ali2100
چهارشنبه 12 دی 1386, 15:38 عصر
سلام
بخاطر این آموزش متشکرم

من اگر بخواهم یک صفحه که کد جاوا اسکریپت ویا استایل را توی این باکس اضافه کنم مشکل دارم

ویا این یک مثال خیلی خوب آماده کردم فقط راه لود اسکرپت را بلد نیستم ممنون میشوم اگر راهنمایی کنید

دانلود فایل (http://akbari.ir/Ajex%20Test.zip)

البته با آجاکس کار کردم ولی من نتونستم صفحه ای را که جاوا اسکریپت و سی اس اس داره را لود کنم
اگر بصورت ادیت شده آپ کنید عالی میشود بخدا دیگه منو کلافه کرده

oxygenws
چهارشنبه 12 دی 1386, 15:48 عصر
البته کاش این رو تو یه تاپیک جدا در قسمت طراحی صفحات مطرح میکردی !
منم دنبال اجرای این فیلتر ها توی browser های غیر IE زیاد گشتم آخر به این نتیجه رسیدم که اکثر این فیلتر ها منحصرا تو IE درست کار میکنن !
برای اینکه فیلتر ها استاندارد نیستند و توسط خود IE اختراع شدند و استاندارد نشدند.

Behrouz_Rad
چهارشنبه 12 دی 1386, 17:46 عصر
برای اینکه فیلتر ها استاندارد نیستند و توسط خود IE اختراع شدند و استاندارد نشدند.
در Firefox فیلتر وجود نداره؟

ali2100
چهارشنبه 12 دی 1386, 17:56 عصر
سلام
بخاطر این آموزش متشکرم

من اگر بخواهم یک صفحه که کد جاوا اسکریپت ویا استایل را توی این باکس اضافه کنم مشکل دارم

ویا این یک مثال خیلی خوب آماده کردم فقط راه لود اسکرپت را بلد نیستم ممنون میشوم اگر راهنمایی کنید

دانلود فایل (http://akbari.ir/Ajex%20Test.zip)

البته با آجاکس کار کردم ولی من نتونستم صفحه ای را که جاوا اسکریپت و سی اس اس داره را لود کنم
اگر بصورت ادیت شده آپ کنید عالی میشود بخدا دیگه منو کلافه کرده




این فایل (http://akbari.ir/Ajex%20Test.zip)
شامل دو فایل index.html و menu2.html هست که می خواهم صفحه منو توی قسمتی که توی صفحه اصلی درست کردم لود بشه

هدف نهایی لود menu2.html توی index.html هست که صفحه لود شده درست کارکنه

البته صفحه menu.html نیز شامل دو قسمت جاوا اسکریپته که فکر کنم باید از یک طریقی اونو تو صفحه اصلی لود کنیم ولی مشکل اینجاست که قسمت آخر جاوا اسکریپت یعنی

<script type="text/javascript" language="JavaScript">initProdMenus();</script>
اجرا کننده منو هست و من نمی دونم راحل اجرای اون چیه

ممنون میشم کسی تکمیلش کنه


دوستان برای پی گیری ادامه این مبحث به این لینک مراجعه نمایید. متشکرم (http://forum.majidonline.com/showthread.php?t=73764)


لینک (http://forum.majidonline.com/showthread.php?t=73764)

oxygenws
چهارشنبه 12 دی 1386, 18:29 عصر
در Firefox فیلتر وجود نداره؟
تو هیچ مرورگری، جز اونهایی که موتورشون با IE یکی است، وجود نداره، اونم فقط روی IE روی ویندوز :)
http://browsershots.org/http://www.fred.net/dhark/demos/css/css_filter_examples.html

این صفحه هنوز کامل نیست، به زودی صفحهء فوق کامل خواهد شد :) نتیجهء درست اونجا دیده میشه :)

Behrouz_Rad
چهارشنبه 12 دی 1386, 21:55 عصر
امید.
اما این فیلتر در Firefox جواب میده:


filter:alpha(opacity=80);-moz-opacity:.80;opacity:.80;

لطفا اگر اشتباه می کنم تصحیح کن.

مرسی.

oxygenws
چهارشنبه 12 دی 1386, 22:13 عصر
اونی که نوشتی یک فیلتر نیست، ۳ تا فیلتره.

اون کد هایی که اولشون -moz دارند برای موتور موزیلا کار می کنند و ربطی به مابقی مرورگر ها ندارند. احتمالا هر کدوم از خط های بالا رو برای یک مرورگر خاص نوشته. اولی IE و دومی موزیلا-بیس و سومی *احتمالا* اپرا!!

کلا فیلتر، استاندارد نیست :) اگر حس می کنی هست، توی specification مربوط به CSS نشونم بده :) حالا ا گه هر مرورگری **برخی** فیلتر های مخصوص خودش رو پشتیبانی می کنی، ربطی به CSS نداره. یعنی اینکه الان opacity درست شد، خوب، chroma چی؟ blur چی؟!!

قصد توهین ندارم، اما به هر ترتیب، استفاده کردن از (ارزش نهادن به) چیزی که استاندارد نیست احمقانه است. و به قول معروف:

if it isn't in the standard, it doesn't exist

Behrouz_Rad
چهارشنبه 12 دی 1386, 22:35 عصر
پس این جمله رو:

برای اینکه فیلتر ها استاندارد نیستند و توسط خود IE اختراع شدند و استاندارد نشدند.
میشه به شکل ذیل اصلاح کرد:

برای اینکه فیلتر ها استاندارد نیستند و توسط خود مرورگر (چه IE و چه Firefox) اختراع شدند و استاندارد نشدند.

:)

oxygenws
چهارشنبه 12 دی 1386, 23:03 عصر
برای اینکه فیلتر ها استاندارد نیستند و توسط خود مرورگر (چه IE و چه Firefox) اختراع شدند و استاندارد نشدند.میشه اینطوری انتقاد کرد که «فیلتر» رو فقط توی IE داریم و توی فایرفاکس فقط خاصیت «کدر شدن» داریم و جملهء قبلی من کاملا درست و دقیق بود :)

به هر ترتیب، چه در IE و چه فایرفاکس، سرمایه گذاری کردن و اهمیت دادن به مواردی که استاندارد نیستند احمقانه است. من تو سایت خودم از برخی CSS های moz استفاده کرده بودم، اما مسلما، نبود ِ اون CSS ها چیزی از سایتم برای مابقی مرورگر ها کم نمی کنه :)

Behrouz_Rad
پنج شنبه 13 دی 1386, 09:46 صبح
میشه اینطوری انتقاد کرد که «فیلتر» رو فقط توی IE داریم و توی فایرفاکس فقط خاصیت «کدر شدن» داریم و جملهء قبلی من کاملا درست و دقیق بود :)

نه! "کدر شدن" هم نوعی فیلتره. پس فیلتر "فقط" در IE وجود نداره بلکه کلا مرورگرهای moz based هم فیلتر رو پشتیبانی می کنند. پس جمله ی قبلیت کاملا غلطه :)


کلا فیلتر، استاندارد نیست :) اگر حس می کنی هست، توی specification مربوط به CSS نشونم بده :)

مستندات CSS 3 بخش opacity برای شما:
http://www.w3.org/TR/css3-color/#opacity

موفق باشی. :)

oxygenws
پنج شنبه 13 دی 1386, 17:33 عصر
نه! "کدر شدن" هم نوعی فیلتره. پس فیلتر "فقط" در IE وجود نداره بلکه کلا مرورگرهای moz based هم فیلتر رو پشتیبانی می کنند. پس جمله ی قبلیت کاملا غلطه :)
بله، در صورتی که قصد، مغلطه کردن باشه، و بخوای به مفهوم فیلتر گیر بدی، بولد شدن یا ایتالیک شدن یا ... هم به نوعی فیلتر هستند!!!


مستندات CSS 3 بخش opacity برای شما:
http://www.w3.org/TR/css3-color/#opacity
واقعا شباهتی بین این سینتکس با سینتکس استفاده شده در IE می بینی؟؟ اگه به این می گی «فیلتر»، پس به اونهایی که اولشون filter میان چی می گی؟؟ می خوای برای اینکه ذهن قشنگت منحرف نشه، زین پس بهشون بگیم «بهروز» تا قاطی نکنی؟؟

opacity با فیلتر فرق داره. توی CSS، فیلتر به اونهایی می گن که با کلمهء filter شروع میشه!! که استاندارد نیستند.

Behrouz_Rad
پنج شنبه 13 دی 1386, 20:32 عصر
واقعا شباهتی بین این سینتکس با سینتکس استفاده شده در IE می بینی؟؟ اگه به این می گی «فیلتر»، پس به اونهایی که اولشون filter میان چی می گی؟؟ می خوای برای اینکه ذهن قشنگت منحرف نشه، زین پس بهشون بگیم «بهروز» تا قاطی نکنی؟؟
هنر بازی کردن با کلماتت بد نیست ;)
احتمالا متوجه شدی کجا رو اشتباه کردی!


واقعا شباهتی بین این سینتکس با سینتکس استفاده شده در IE می بینی؟؟

فکر می کنم صحبت اصلیت رو فراموش کردی!
تو گفتی که فیلتر فقط در IE وجود داره و استاندارد نیست و مرجع CSS خواسته بودی. من هم بهت فیلتری نشون دادم که در مرورگرهای moz based وجود داره و استاندارد CSS هم هست.
جوابت ارتباطی با بحث ما نداره!


opacity با فیلتر فرق داره. توی CSS، فیلتر به اونهایی می گن که با کلمهء filter شروع میشه!! که استاندارد نیستند.

تعریف و مرجعی برای من بیار که گفته باشه opacity فیلتر نیست!

من خوشحال میشم اگر اشتباه می کنم به من بگی، به شرطی که آرامش خودت رو حفظ کنی :)

tabib_m
جمعه 14 دی 1386, 00:01 صبح
ببخشید، نمیخوام فضولی کنم ولی :
منظور از «فیلتر» در صحبت های امید، فقط اون کدهایی هستن که با عبارت "filter" شروع میشن.
اگر شما (بهروز خان) بخوای مثلا alpha رو یک فیلتر (به معنای عمومی) به حساب بیاری، همونطور که امید گفت، باید bold و italic رو هم فیلتر به حساب بیاری. چون در هر صورت، کدی که روی محتویات داخلش تأثیر بذاره و تغییرش بده، یک فیلتر هست.
حالا آقای IE اومده خاصیت alpha رو به وسیله ی کد filter معرفی کرده، این دلیل نمیشه که شما بیای خاصیت alpha رو ذاتا فیلتر حساب کنی و بگی که موزیلا هم این رو داره (یا کلا استاندارد پشتیبانی میکنه) ولی bold رو فیلتر حساب نکنی!!

امیدوارم منظورم رو رسونده باشم

m.hamidreza
جمعه 14 دی 1386, 15:21 عصر
منظور از «فیلتر» در صحبت های امید، فقط اون کدهایی هستن که با عبارت "filter" شروع میشن.

این حرف برادر امید گفته شما رو نقض میکنه :



اما این فیلتر در Firefox جواب میده:


filter:alpha(opacity=80);-moz-opacity:.80;opacity:.80;



اونی که نوشتی یک فیلتر نیست، ۳ تا فیلتره.


================================================== =====
توجه بفرمایید :



Mozilla uses the property -moz-opacity:x for transparency, while IE uses filter:alpha(opacity=x). Tip: The CSS3 syntax for transparency is opacity:x.
مهم نفس عمله که جفتشون انجام میدن ... (منبع : W3C)
پس این جمله رو بپذیرید لطفــــــــا :



برای اینکه فیلتر ها استاندارد نیستند و توسط خود مرورگر (چه IE و چه Firefox) اختراع شدند و استاندارد نشدند.

:)

tabib_m
شنبه 15 دی 1386, 16:58 عصر
این حرف برادر امید گفته شما رو نقض میکنه :



اما این فیلتر در Firefox جواب میده:



filter:alpha(opacity=80);-moz-opacity:.80;opacity:.80;



اونی که نوشتی یک فیلتر نیست، ۳ تا فیلتره.

خوب همونطور که گفتم، دو تا معنا در مورد فیلتر وجود داره: 1- فیلتر به معنای عمومی (که یعنی هر کدی که در زیر مجموعه ش تأثیر ظاهری بذاره) 2- فیلتر به معنای کدی که بعد از دستور filter بیات.

حالا در اینجا اون طوری که واضحه، منظور از «فیلتر» ، فیلتر به معنای شماره ی 1 هست!
من که نگفتم هرررررر جایی که امید گفته فیلتر، منظورش اون فیلتر بوده (شماره ی 1).
منظورم در این جمله بود:

برای اینکه فیلتر ها استاندارد نیستند و توسط خود IE اختراع شدند و استاندارد نشدند.




Mozilla uses the property -moz-opacity:x for transparency, while IE uses filter:alpha(opacity=x). Tip: The CSS3 syntax for transparency is opacity:x.

اگر دقت کرده باشی، کدی که برای موزیلا معرفی شده، قبلش کلمه ی filter نیست!!
اصلا به طور کلی، این مطلب هیچ اشاره ای به فیلتر نکرده و فقط از کلمه ی filter در کد مربوط به IE استفاده کرده!!!

این هم مثال خوب و واضح از کد مربوط به فایرفاکس:



<div style="width: 200px; height: 200px; background-color: blue; border: 1px solid black;">
<div style="margin: 50px; width: 100px; height: 100px; background-color: red; -moz-opacity:.50;">

</div>
</div>


الفاظ دارای معانی متعدد، خیلی وقتها توی بحث ها باعث دردسر میشن!!

موفق باشید.

ehsan2007
سه شنبه 25 دی 1386, 21:52 عصر
با تشکر از همه دوستان و بحث جالبی که در مورد فیلتر ها انجام داده بودن
یک سوال دیگم داشتم
اینکه توی تقریبا تمام مرورگر ها به جزieعکس با پسوند png رو میتونیم پشت زمینه یک جدول یا div رو repeat کرد ولی توی ie نمیشه فقط هم این کار با فیلتر انجام میشه
حالا میشه کسی بگه چه شکلی این کارو توی ie انجام داد
من که هر کاری کردم نشد ولی تنها چیزی که به ذهنم رسید اینکه دوتا فایل css جداگانه میشه نوشت اگه مرورگر ieبود فایل css اولی کار کنه و اگه مرورگر دیگهای بود از فایل ccs دوم استفاده بشه حالا این کارم یاد ندارم بکنم یعنی تشخیص اینیکه مرورگر ieیا نه فقط میدونم که میشه تشخیص داد که مرورگر ie 5 یا ie6 کدشو یک جا دیده بودم
دوستان اگه پیشنهاد دیگهای هم دارن لطفا بگن