Window Object Methods
در محیط اجرای مرورگر یک سری متد های پیش فرض برای یک سری عملیات های عمومی تر از متدهای ساختمان داده های موجود primitive و none primitive داریم . در حقیقت ما متدهایی در رابطه با ساختمان داده window را در این مقاله بررسی می کنیم.
متد های شئ window را به دسته های زیر تقسیم می کنیم:
- Dialog
- Console
- Encryption
- Window Actions
- Timing Interval
- Type Casting
Dialog
متد های مربوط به نمایش باکس popup با استفاده از گرافیک پیش فرض مرورگر متد های dialog می گوییم.
alert | صرف نمایش یک متن
alert('hello world') |
confirm | توقف برنامه و گرفتن تاییدیه برای ادامه برنامه
let confirmation = confirm('Are you sure in delete entity') |
prompt | دریافت یک متن ورودی در پوشش همان باکس popup و استفاده از آن برای اجرای شرط ادامه برنامه .
let displayName = prompt("please enter display name", "guest " + Date.now()) alert('Welcome ' + displayName) |
به طور مثال قرار است یک متد یک درخواست حذف یک موجودیت را بدهد. حذف موجودیت یک عملیات حساس است که امکان خطا در آن وجود دارد . برای همین یک پیش درخواست برای این پردازش اجرا خواهیم کرد.
var validateAction = function(e){ let validateKey = e.target.getAttribute('data-name') let requestKey = prompt('enter the entity that you want to delete it') if(validateKey != requestKey){ alert('your name is incorrect , the name was ' + validateKey) return e.preventDefault() } }
در کد بالا در ادامه اگر نام اشتباه وارد کرده باشد preventDefault اتفاق می افتد و اگر درست باشد ادامه عملیات که همان دکمه ای است که روی آن کلیک شده است.
console
نمایش خروجی در console محیط اجرای جاوا اسکریپت از متد window.console یا خلاصه تر console استفاده می کنیم. ابزار console بیشتر برای دیباگ و نمایش لاگ ها در مرورگر یا خروجی interactive shell جاوا اسکریپت مورد استفاده قرار می گیرد.
console.log : برای نمایش ساده خروجی . معادل var_dump در php
console.assert : در صورتی که شرط (assertion) برابر با false شود این مورد نمایش داده می شود . به طور مثال اگر پاسخ آمده از سرور برابر با false باشد خروجی متن خطا را نمایش بده :
function handleResponse(response){ console.assert(response.status,response.message) }
console.clear : برای پاک کردن console استفاده می شود . به طور مثال می خواهید قبل از نمایش داده متن شما کنسول حتما تمیز باشد
console.clear() console.log(error)
console.count : تعداد بارهایی که این console.count اجرا شده است را نمایش می دهد. برای شمارش یک عملیات خاص استفاده می شود.
for (let i = 0; i < 5; i++) { console.count("Count number"); console.log(i); }
console.dir : صورت قابل فهم تری از console.log است.
console.error : برای نمایش خطا کاربرد دارد
console.table : داده های موجود را در قالب جدول نمایش می دهد 🙂
console.time : برای تعیین زمان میان دو خط اجرای کد است . به طور مثال :
console.time("trackLoop"); for (let i = 0; i < 10000; i++) { } console.timeEnd("trackLoop");
در انتهای اجرای این کد trackLoop: 1ms – timer ended چاپ می گردد یعنی ۱میلی ثانیه از شروع تا پایان زمان برده است برای حلقه در ۱۰ هزار عدد. برای تعیین زمان این عبارت بسیار کاربردی است.
Encryption
رمز نگاری قابل برگشت می باشد . این توابع برای تولید رشته های خاص برای token یا salt بسیار کاربردی است و همچنین راهکار غیر امنی برای احراز هویت می باشد.
atob | رمز کردن یا همان Encode |
btoa | رمزنگاری و یا همان Decode |
let text = "gnutec"; let encoded = window.btoa(text); //Z251dGVj let decoded = window.atob(encoded); //gnutec
window
لیست متد هایی که برای ساخت و پردازش window می باشد و همچنین ویرایش و دستکاری ویژگی های پنجره جاری یا همان window می باشد.
open | باز کردن یک پنجره جدید . این متد ورودی هایی که می گیرد ویژگی های همان پنجره خواهد بود.
var newHome = window.open(window.location.origin,'home url','_blank'); پارامتر اول لینک است . پارامتر دوم نام انتخابی برای پنجره است و پارامتر سوم target است و پارامتر چهارم رشته ای از ویژگی های نظیر اندازه های مربوطه |
close | بستن پنجره جاری
var home = window.open(window.location.origin,'home url','_blank'); home.close() |
stop | stop کردن load صفحه جاری
window.stop() |
moveTo | جا به جا کردن پنجره مورد نظر با توجه به موقعیت تصویر screen
var home = window.open(window.location.origin,'_blank','width=200,height=200') home.moveTo(100,100) |
moveBy | جا به جا کردن پنجره با توجه به موقعیت فعلی پنجره
var home = window.open(window.location.origin,'_blank','width=200,height=200') home.moveBy(100,100) |
resizeTo | تغییر اندازه پنجره جاری به سایز داده شده به صورت static
var home = window.open(window.location.origin,'_blank','width=200,height=200') home.resizeTo(100,100) |
resizeBy | تغییر اندازه پنجره جاری با توجه به اندازه فعلی به صورت relative
var home = window.open(window.location.origin,'_blank','width=200,height=200') home.resizeBy(100,100) مثلا در مثال بالا پنجره هر اندازه که باشد به مقدار ۱۰۰ پیکسل طول و عرض آن افزایش می یابد. |
scrollTo | اسکرول کردن یک پنجره به مقدار ثابت داده شده . پارامتر اول مقدار horizontally یا افقی , پارامتر دوم مقدار vertically یا عمودی
window.scroll(0,0) برای رفتن به ابتدای صفحه. window.scroll(0,100) ۱۰۰ واحد از ابتدای صفحه پایین تر (عمودی) |
scrollBy | اسکرول کردن با توجه به موقعیت کنونی اسکرول است .
window.scrollBy(0,100) 100 واحد از موقعیت کنونی به پایین اسکرول می گردد. |
Schedule Timing
برای اجرای برنامه ها یه صورت زمان بندی از زمان شروع Timeout تا زمان پایان Interval می باشد.
setTimeout | اجرای برنامه بعد از گذشت یک زمان
function win(){ alert('you win') } setTimeout(win,3000) دقت داشته باشید اگر در زمان پاس دادن یک callback به یک متد مقابل تابع () را قرار بدهیم این تابع در زمان اجرای متد فرخواننده اجرا خواهد شد. به طور مثال رویه زیر اشتباه است: settimeout(win(),3000) |
clearTimeout | پاک کردن timeout تعبیه شده روی یک متد پیش از رسیدن زمان اجرای callback
var tout = setTimeout(win,9000) clearTimeout(tout) |
setTimeInterval | اجرای یک بلوک کد یا یک متد به صورت سیکل زمانی
const intervalOne = window.counter = 0; window.interval = setInterval(()=>{ counter++; console.log(counter) },1000); |
clearInterval | حذف سیکل تکرار از روی یک متد
const intervalOne = window.counter = 0; window.interval = setInterval(()=>{ counter++; console.log(counter) },1000); clearInterval(intervalOne) |
Type Casting
این دسته متد ها برای تبدیل واحد اعداد می باشد . برای به عدد از نوع integer , floating point است.
parseInte | تبدیل به عدد صحیح
parseInt('10') //10 |
parseFload | تبدیل به عدد اعشاری
parseFloat('10.1') //10.1 |
سایر متد های window
print : برای پرینت گرفتن صفحه جاری استفاده می شود.
window.print()
اگر بخواهید یک سند با جاوا اسکریپت ایجاد کنید و یک قسمت از صفحه فعلی را در آن پرینت بگیرید باید مطابق با الگوریتم زیر عمل کنید.
var mywindow = window.open('', 'PRINT', 'height=400,width=600'); mywindow.document.write('<html><head><title>' + document.title + '</title>'); mywindow.document.write('</head><body >'); mywindow.document.write('<h1>Title of this content</h1>'); mywindow.document.write(document.getElementById(content_bar).innerHTML); mywindow.document.write('</body></html>'); mywindow.document.close(); mywindow.focus(); mywindow.print(); mywindow.close();
در قطعه کد بالا ما درخواست دادیم برای ساخت یک window و در ادامه محتوای بدنه اصلی را #content_bar را در این window قرار داده و پرینت گرفتیم .
دیدگاهتان را بنویسید