تعداد بازدید: 303

Window Object Properties

شئ جاری در Browser Environment یک سری اطلاعات در قالب یک سری ساختمان داده در رابطه با اطلاعات صفحه وب فعلی از قبیل درخواست های ارسالی و لینک صفحه جاری و صفحه وب و … دارد .

Window Document

سند HTML وارد شده در صفحه جاری یا همان DOM Document یک ویژگی از شئ‌ window می باشد . پس BOM شامل DOM هم است . این سند شامل window.document و یا به اختصار document می باشد.

لیست کامل Properties و Methods های آن ها را در مقاله Dom Document در مرورگر مشاهده کنید. برای ساخت یک Document می توان از ترکیب زیر استفاده کنیم :

document.write("Hello World!");

در متد بالا کل صفحه جاری یک متن hello world قرار می گیرد.

Window Frames

لیست frame window های موجود در صفحه را برمی گرداند. اگر یک لیست iframe در صفحه جاری داشته باشیم می توان به این آرایه دست پیدا کرد در غیر اینصورت همان window جاری صفحه را بر می گرداند.

window.frames

در متد بالا اگر iframe در صفحه جاری نداشته باشیم همان شئ window  متعلق به صفحه جاری را برمی گرداند که properties , methods تعریف شده در صفحه جاری وب را بر می گرداند.

window frames

اگر صفحه جاری – Dom Document – شامل یک سری iframes باشد می توان به هر یک از آن ها با استفاده از index آن ها دسترسی پیدا کرد.

window.frames[0].location

Window History

این ویژگی شامل اطلاعات مربوطه به تاریخچه مرورگر است. برای دسترسی به این property از window.history  یا history استفاده می کنیم. ساختمان داده برگشتی در این ویژگی History است که شامل Properties , Methods زیر می باشد.

length اندازه لیست history را برمی گرداند.
go این متد به صورت کلی شامل forward , back  است . برای برگشتن به درخواست قبلی و بعدی با توجه به عدد داده شده به آن می باشد.

history.go(0) //reloads the page.
history.go(-1) //back().
history.go(1) //forward().
window.history.go(2) //forward().forward()
forward برای رفتن به تاریخچه بعدی یک مرحله

window.history.forward()
back برای رفتن به تاریخچه قبل یک مرحله

window.history.back()
pushState به عبارت ساده تر اضافه کردن یک endpoint یا ترکیب یک endpoint به انتهای url می باشد . این به لیست History اضافه می شود.

window.history.pushState({userId:10},null,'hello-worold')
replaceState دقیقا مثل pushState است با این تفاوت که جایگزین وضعیت جاری یا همان current history state می شود.

window.history.replace({userId:10},null,'hello-world')

همان طور که history یک لیست از وضعیت های موجود در history می باشد . به این ترتیب می توان به ازای وضعیت جاری مقدار collection در پارامتر اول را دریافت کرد :

window.history.replaceState({id:10},'','hello-world')
window.history.state //Object { id: 10 }

تفاوت pushState , replaceState این است که زمانی که pushState استفاده می کنیم عملا وضعیت جاری حفظ و به وضعیت قبلی تبدیل می شود و عدد window.history.length یکی بیشتر می شود اما در replaceState وضعیت جدید جایگزین وضعیت قبل می شود و عدد window.history.length تغییری نمی کند. از این ویژگی برای روتینگ در جاوا اسکریپت استفاده می شود.

Window Navigator

این property شامل یک سری اطلاعات از پنجره جاری مرورگر می باشد . برای دسترسی به window.navigator یا navigator می توان دست پیدا کرد.

window.navigator.onLine //true (Returns true if the browser is online)
window.navigator.appCodeName //"Mozilla" 
window.navigator.appName //"Netscape" 
window.navigator.appVersion //"5.0 (X11)" 
window.navigator.clipboard //Clipboard { } 
window.navigator.oscpu //"Linux x86_64" 
window.navigator.userAgent //"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:101.0) Gecko/20100101 Firefox/101.0" window.navigator.platform //"Linux x86_64"

برخی ویژگی های این ساختمان داده را در یک مثال در بالا ذکر کرده ایم . جالب ترین آن و پرکاربردترین می توان به onLine اشاره کرد که اگر به اینترنت اتصال داشتید true , و اگر اتصال نداشتید false بر می گرداند. ServiceWorker نیز در همین property می باشد.

Window Location

location یعنی مکانی که درخواست ارسال شده است (لینک درخواست) این ویژگی می تواند لینک درخواست صفحه وب جاری را تجزیه و تحلیل کند و همچنین پارامتر هایی که در پایین ذکر شده را set , get کند.

Location Object Properties

hash هشتگ های موجود در لینک را برمی گرداند.

window.location.hash //"#hello#world"
host نام هاست (hostname یعنی آدرس دامنه بدون پروتکل) و پورت (port به صورت پیش فرض عدد ۸۰ است) را با هم بر می گرداند.

window.location.host //gnutec.net
window.location.host //gnutec.net:22

پورت اگر عدد ۸۰ باشد نمایش داده نمی شود و اگر عددی غیر از ۸۰ باشد نمایش می دهد. عموما پورت های خاصی تنها از هر سرور  قابل استفاده است و برخی پورت ها بسته می باشند.(This address is restricted)

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

window.location.hostname
"gnutec.net"
href کل url را به همراه پروتکل و نام هاست (دامنه) و پورت (اگر ۸۰ باشد پیش فرض نشان نمی دهد) و hash , query params کامل برمی گرداند.

window.location.href
"https://gnutec.net/?p=2275&preview=true#hello"
origin ترکیب protocol , hostname , port یا به عبارتی همان صفحه Home یا صفحه اصلی است .
pathname قسمت endpoint در لینک درخواست ارسال می گردد.

window.location.pathname
https://gnutec.net/browser-object-model-bom/ => "/browser-object-model-bom/"
window.location.pathname
https://gnutec.net/?p=2247&preview=true#hello  => "/"

دقت داشته باشید که این روت درخواست است و با query params همان طور که در مثال ذکر شده است تفاوت دارد.

port پورت درخواست را بر می گرداند. برخی پورت ها بسته و پورت پیش فرض که نمایش داده نمی شود ۸۰ است.
protocol پروتکل را بر می گرداند.
search لیست Query Params را به صورت رشته بر می گرداند.

window.location.search
"?p=2247&preview=true"

با استفاده از کلاس URL می توانید به لینک درخواست ارسالی به این کلاس دسترسی داشته باشید. به طور مثال با search می توانید به صورت رشته ای همانند search به query params دسترسی داشته باشید و با searchParams می توانید به ساختمان داده مربوط دسترسی داشته باشید:

var url = new URL(window.location.href)
url.search //"?p=224&preview=true"
url.searchParams.forEach((value,key) => {
    console.log(value,key)
})
//224 p
//true preview

Location Object Properties

assign() برای تغییر لینک سورس صفحه وب فعلی . این متد در لیست history ثبت می گردد.

window.location.assign('https://gnutec.net')
reload() این متد پارامتر ندارد و صفحه وب فعلی refresh می گردد.
replace() این متد برای جایگزین کردن لینک جدید (پارامتر این متد) جایگزین لینک درخواست فعلی می گردد.

window.location.replace('https://gnutec.net/')

window.screen

مشخصات مربوط به اندازه های صفحه نمایشگر بر می گرداند. مهم ترین property های موجودیت window دو مورد innerWidth , innerHeight است.

window.innerWidth //1080
window.innerHeight //480

موارد بالا عدد واقعی از سایز پنجره مرورگر را بر می گرداند. window.screen ویژگی های موجود از صفحه نمایشگر را بر می گرداند.

 

مطالب مشابه

JavaScript DataStructure Part 1

ساختمان های داده در جاوا اسکریپت متفاوت از ساختمان های داده در زبان های دیگر است (مثلا php) . این ساختمان داده ها به...

OOP Paradigm fundamental

شئ گرایی یک الگوی تفکر طراحی سیستم های نرم افزاری است که این تفکر باعث نگاشت موجودیت های سیستم (Enitity) یا عملیات ها...

ویژگی Event در ساختار Dom

event هم یک موجودیت در ساختار dom می باشد که به ازای هر HTML Object یک سری Attribute یا ویژگی خواهیم داشت که یکی از آن...

Javascript Symbol

در جاوا اسکریپت ما دو دسته داده داریم . دسته اول Primitive است و دسته دوم non-primitive است. داده های از نوع Primitive...

اشتراک گذاری :

مدیر وب سایت گنوتک . برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress و فریم ورک محبوب لاراول علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای Window Object Properties

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *