مطالب برچسب شده ‘JavaScript’

توابعی برای کار با کوکی ها در جاوا اسکریپت

شنبه, ۳۱ مرداد ۱۳۸۸

در زیر کد سه تابع رو براتون نوشتم که برای مدیریت راحت تر و آسون تر cookie ها استفاده میشن.

function getCookie( name ) {
var start = document.cookie.indexOf( name + “=” );
var len = start + name.length + 1;
if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
return null;
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ‘;’, len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
var today = new Date();
today.setTime( today.getTime() );
if ( expires ) {
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name+‘=’+escape( value ) +
( ( expires ) ? ‘;expires=’+expires_date.toGMTString() : ) + //expires.toGMTString()
( ( path ) ? ‘;path=’ + path : ) +
( ( domain ) ? ‘;domain=’ + domain : ) +
( ( secure ) ? ‘;secure’ : );
}

function deleteCookie( name, path, domain ) {
if ( getCookie( name ) ) document.cookie = name + ‘=’ +
( ( path ) ? ‘;path=’ + path : ) +
( ( domain ) ? ‘;domain=’ + domain : ) +
‘;expires=Thu, 01-Jan-1970 00:00:01 GMT’;
}

JSCharts

دوشنبه, ۱۹ مرداد ۱۳۸۸

JSCharts یه تولید کننده چارت مجانی هست که با جاوا اسکریپت نوشته شده. با کمک اون و با چند خط کوچیک کد یا حتی بدون کد نویسی می تونین چارت های مورد نظر خودتون رو رسم کنین. با JSCharts کشیدن چارت خیلی ساده میشه و در ضمن به طرف کامپیوتر مشتری هم فرستاده میشه و کار سرور رو کمتر می کنه. به هیچ پلاگین یا ماژول اضافه ای هم احتیاجی نیست فقط باید مراحل زیر رو انجام بدین:
فایل اسکریپت رو include می کنین
داده های چارت رو در قالب XML یا آرایه در جاوا اسکریپت آماده می کنین
و چارت شما آماده هست (دعا برای نویسنده اسکریپت و من فراموش نشه!!!)

بارگذاری فایل CSS و JS به سند HTML به صورت پویا

چهارشنبه, ۲۱ اسفند ۱۳۸۷

مقدمه:
در محل کار من یه فرم نوشتم که افراد باید در اون یه تاریخی رو با فرمت خاصی ثبت کنن (مثال: ۲۵/۱۲/۱۳۸۷) حالا مشکلی که به وجود میاد اینه که بعضی وقت ها بر اثر بی دقتی تاریخ رو اشتباه وارد می کنن البته برنامه به صورت جاوا اسکریپت به اونها اخطار می ده ولی اون ها با من تماس می گیرن که برنامه مشکل داره. برای رفع این مشکل به این نتیجه رسیدم که برای ورود تاریخ از یه تقویم جاوا اسکریپتی استفاده کنم که کاربر به جای این که تاریخ رو وارد کنه اون رو انتخاب کنه. یه تقویم فارسی جاوا اسکیپتی خوب هم اینجا پیدا کردم که خیلی استفاده از اون ساده هست.

مساله:
حالا مشکلی که هست اینه که این تقویم یه فایل JS و CSS هم همراهش هست و من داخل تمام صفحاتم برای این که کد تکراری بالای صفحه رو ننویسم همه رو داخل یه تابع گذاشتم به صورت واضح تر اگر بخوام توضیح بدم از اول تگ html تا اول تگ body رو یه تابع چاپ می کنه.

حالا برای این که در همه صفحات این فایل CSS و JS بارگذاری نشه (به دلایل امنیتی نمی تونم این قسمت رو کامل توضیح بدم) به فکرم رسید که یه تابع جاوا اسکریپت بنویسم که نام فایل و نوع اون رو بگیره و فایل رو به قسمت head صفحه اضافه کنه.

راه حل:
یه تابع پیدا کردم که نام فایل و نوع اون رو می گیره و در قسمت head فایل html اضافه می کنه (خودم رو کشتم با این توضیحاتی که دادم)

function loadjscssfile(filename, filetype){
if (filetype==”js”){ //if filename is a external JavaScript file
var fileref=document.createElement(’script’)
fileref.setAttribute(”type”,”text/javascript”)
fileref.setAttribute(”src”, filename)
}
else if (filetype==”css”){ //if filename is an external CSS file
var fileref=document.createElement(”link”)
fileref.setAttribute(”rel”, “stylesheet”)
fileref.setAttribute(”type”, “text/css”)
fileref.setAttribute(”href”, filename)
}
if (typeof fileref!=”undefined”)
document.getElementsByTagName(”head”)[0].appendChild(fileref)
}

 نمونه استفاده از کد رو هم می تونین اینجا ببینین

Animated JavaScript Slideshow

یکشنبه, ۲۹ دی ۱۳۸۷

جاوا اسکریپتی که امروز می خوام خدمتتون معرفی کنم کارش اینه که یه سری تصویر رو به صورت پشت سر هم یا همون به اصطلاح اسلاید نمایش می ده، در ضمن حجمش هم به خیلی کمه (در حدود ۵ کیلو ببایت). امکانات جالبی هم داره مثلا: برای هر تصویر می تونین توضیح یا لینک هم داشته باشین، تصاویر Portrait رو هم پشتیبانی می کنه و …

همچنین مستندات و مثال هم داره. در زیر یه مثال از نحوه بکار بردن این اسکریپ اومده:

<ul id=”slideshow”>
<li>
<h3>Image One</h3>
<span>photos/image-one.jpg</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut urna. Mauris nulla. Donec nec mauris. Proin nulla dolor, bibendum et, dapibus in, euismod ut, felis.</p>
<a href=”#”><img src=”thumbnails/image-one.jpg” alt=”Image One” /></a>
</li>
<li>
<h3>Image Two</h3>
<span>photos/image-two.jpg</span>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut urna. Mauris nulla. Donec nec mauris. Proin nulla dolor, bibendum et, dapibus in, euismod ut, felis.</p>
<img src=”thumbnails/image-two.jpg” alt=”Image Two” />
</li>
</ul>

هر “li” نمایانگر یه تصویر هست و تگ های “h3″ عنوان تصویر رو مشخص می کنن همچنین تگ های “p” شامل توضیحات هستن. تگ “span” هم مسیر مسیر تصویر اصلی رو مشخص می کنه. اگر می خواین که تصویرتون به جایی لینک باشه باید دو طرف تگ “img” که برای تصویر کوچیک به کار بردین از یک تگ “a” استفاده کنین.

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

Images

imgSpeed = int; (10)
navOpacity = int; (25)
navHover = int; (70)
letterbox = “string”; (#۰۰۰) required color for letterbox on portrait images
link = “string”; class name for link hover state

Auto Slideshow

auto = boolean; (false)
speed = int; (10)

Information Dialog

info = boolean; (true)
infoID = “string”; required for information dialog
infoSpeed = int; (10)

Thumbnail Slider

thumbs = “string”; id of thumbnail slider, disabled if not set
scrollSpeed = int; [1-20] (5)
thumbOpacity = int; [0-100] (70)
active = “string”; required for thumbnail active border
spacing = int; (5) spacing between thumbnails
left = “string”; id of left navigation link, required for slider
right = “string”; id of right navigation link, required for slider

در زیر یه نمونه از نحوه کار اومده:

<script type=”text/javascript” src=”compressed.js”></script>
<script type=”text/javascript”>
$(’slideshow’).style.display=’none’;
$(’wrapper’).style.display=’block’;
var slideshow=new TINY.slideshow(”slideshow”);
window.onload=function(){
slideshow.auto=true;
slideshow.speed=5;
slideshow.link=”linkhover”;
slideshow.info=”information”;
slideshow.thumbs=”slider”;
slideshow.left=”slideleft”;
slideshow.right=”slideright”;
slideshow.scrollSpeed=4;
slideshow.spacing=5;
slideshow.active=”#fff”;
slideshow.init(”slideshow”,”image”,”imgprev”,”imgnext”,”imglink”);
}
</script>

تابع init پنج تا پارامتر می گیره که بهتره توضیحش رو به انگلیسی بیارم:

id of the slideshow content placeholder, the id of the image placeholder, the id of the previous image placeholder, the id of the next image placeholder, the id of the image link placeholder

این اسکریپت برای فایرفاکس، اینترنت اکسپلورر، اپرا، سفری و کروم تست شده.

نمایش نسخه نمایشی

دریافت فایل