ممکن است نیاز داشته باشید تا به مقادیر کوئری موجود در لینک صفحه فعلی دسترسی دشاته باشید! منظور از کوئری داخل لینک چیست؟! درست است؛ منظور همان پارامترهای ارسال شده به روش Get به آن صفحه میباشد. مثلا اگر آدرس زیر را در نظر بگیریم:https://fullkade.com/test/?name=Hadi&action=edit
حالا در این لیکنک، دو پارامتر name و action وجود دارند که به ترتیب مقادیر hadi و edit را بهخود گرفتهاند. اصطلاحا به این کوئری، Query String گفته میشود و برای دسترسی به آن در جاوا اسکریپت، روشهای متنوعی وجود دارد؛ اما در اینجا به سادگی از URLSearchParams برای کار با آن استفاده میکنیم!
مراحل کار
از دستور location.search برای دریافت کوئری استفاده میکنیم! یعنی این دستور، فقط رشتهی مورد به کوئریها را به ما برمیگرداند و بقیه لینک را شامل نمیشود. بنابراین انتظار میرود اگر لینک بالا را داشته باشیم، اlocation.search بصورت زیر خواهد بود:
name=Hadi&action=edit
میتوان با نوشتن دستی یک الگوریتم، ابتدا رشته را با & جدا کرده و سپس برای دسترسی به کلید و مقدار، آن را با = جدا نمود. اما این کار زمانبر بوده و برای همین بهسادگی میتوانید از URLSearchParams استفاده کنید. بصورت زیر:
var urlParams = new URLSearchParams(location.search);
اما حالا که آبجکتی از کلاس URLSearchParams را با ارسال کوئری به آن ایجاد کردیم، میتوانیم از متدهای has، get، getAll و toString آن استفاده کنیم! بصورت زیر:
var v1 = urlParams.has('name'); // true
var v2 = urlParams.get('name'); // Hadi
var v3 = urlParams.getAll('action'); // ["edit"]
var v3 = urlParams.toString(); // name=Hadi&action=edit
بنابراین از has برای بررسی وجود داشتن و نداشتن، از get برای گرفتن مقدار یک کلید و از getAll برای دریافت تمامی مقادیر کلید و از toString برای تبدیل کلیدها و مقادیر به همان کوئری استفاده میشود.
نظرات ثبت شده بدون دیدگاه