কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে window.location এর ব্যবহার কী?

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 ক্লাস ব্যবহার করুন।

  1. জাভাস্ক্রিপ্টে apply() ফাংশনের ব্যবহার

  2. জাভাস্ক্রিপ্টে _.size() মেথডের ব্যবহার

  3. জাভাস্ক্রিপ্টে Math.hypot() ফাংশনের ব্যবহার

  4. জাভাস্ক্রিপ্টে Sentry-এর ব্যবহার কী?