Window.location: বর্তমান URL-এর সম্পূর্ণ নিয়ন্ত্রণ এবং তথ্য
window.location (বা শুধু location) একটি রিড-অনلی প্রপার্টি যা বর্তমান ডকুমেন্টের URL সম্পর্কে তথ্য ধারণকারী Location অবজেক্ট রিটার্ন করে। এটি শুধু পড়ার জন্য নয় — এর প্রপার্টিগুলো পরিবর্তন করে পেজ নেভিগেশন, রিলোড, রিডাইরেক্ট ইত্যাদি করা যায়।
Location অবজেক্টের প্রধান প্রপার্টি ও মেথড
| প্রপার্টি/মেথড | বিবরণ | উদাহরণ |
|---|---|---|
href | পুরো URL (স্ট্রিং)। সেট করলে পেজ নেভিগেট হয়। | location.href = 'https://example.com' |
protocol | প্রোটোকল (শেষে : সহ)। | 'https:' |
host | হোস্টনেম + পোর্ট। | 'example.com:8080' |
hostname | শুধু ডোমেন নাম। | 'example.com' |
port | পোর্ট নম্বর (যদি স্পষ্ট থাকে)। | '8080' |
pathname | পথ (শুরুতে / সহ)। | '/path/to/page' |
search | কুয়েরি স্ট্রিং (? সহ)। | '?id=123&sort=asc' |
hash | ফ্র্যাগমেন্ট (# সহ)। | '#section2' |
origin | প্রোটোকল + হোস্ট (রিড-অনলি)। | 'https://example.com' |
reload() | পেজ রিফ্রেশ করে। forceGet true দিলে ক্যাশ বাইপাস। | location.reload(true) |
assign() | নতুন URL-এ নেভিগেট (ইতিহাসে যোগ করে)। | location.assign('/new-page') |
replace() | নতুন URL-এ নেভিগেট (ইতিহাসে যোগ করে না, ব্যাক বাটন কাজ করে না)। | location.replace('/login') |
toString() | href-এর সমান। | location.toString() |
সामान्य ব্যবহারিক পরিস্থিতি
১. পেজ রিডাইরেক্ট (ইতিহাসে যোগ করে)
location.href = 'https://example.com';
// বা
location.assign('https://example.com');
২. পেজ রিডাইরেক্ট (ইতিহাসে যোগ না করে — লগইন পেজের জন্য আদর্শ)
location.replace('https://example.com/login');
৩. পেজ রিফ্রেশ
location.reload(); // ক্যাশ ব্যবহার করে
location.reload(true); // সার্ভার থেকে ফরসড রিলোড
৪. কুয়েরি প্যারামিটার পড়া (আধুনিক পদ্ধতি)
const params = new URLSearchParams(location.search);
const userId = params.get('id'); // '123'
const sort = params.get('sort'); // 'asc'
৫. শুধু হ্যাশ পরিবর্তন (পেজ রিফ্রেশ ছাড়া)
location.hash = '#settings'; // URL: ...#settings
//(hashchange ইভেন্ট লিসেন করুন)
সিকিউরিটি ও সীমাবদ্ধতা
- Same-Origin Policy:
location.hrefক্রস-অরিজিন সেট করা যায়, কিন্তুlocation.origin,location.protocolইত্যাদি রিড-অনলি। username/passwordপ্রপার্টি ডিপ্রিকেটেড এবং ভালো ব্রাউজারগুলোতে খালি স্ট্রিং রিটার্ন করে।- SPA-এ (React, Vue)
window.locationব্যবহার না করে রাউটার API ব্যবহার করুন।
Node.js-এ দ্রষ্টব্য
Node.js-এ window.location নেই। সেখানে url মডিউল বা URL ক্লাস ব্যবহার করুন।