كيفية تغيير URL في شريط عنوان المتصفح دون إعادة تحميل الصفحة؟
مرحباً بالجميع! أنا مطور واجهات أمامية مبتدئ وواجهت هذه المشكلة.
لدي تطبيق من صفحة واحدة (SPA) بلغة JavaScript نقية. المستخدم ينقر على الروابط، ويتغير المحتوى في الصفحة ديناميكياً (عبر fetch أو مجرد إخفاء/إظهار الكتل). كل شيء يعمل بشكل رائع، ولكن هناك مشكلة كبيرة: يبقى العنوان في شريط المتصفح كما هو.
على سبيل المثال، ضغط المستخدم على "عن الشركة"، تم تحميل المحتوى، ولكن URL لا يزال `https://mysite.com/`. بسبب هذا:
1. لا يعمل زر "الرجوع" في المتصفح - فهو يذهب إلى الموقع السابق، وليس إلى "الصفحة" السابقة داخل تطبيقي.
2. لا يمكن إرسال رابط لقسم معين لصديق - سيرى دائماً الصفحة الرئيسية.
حاولت تغيير `window.location.href`، لكن هذا يسبب إعادة تحميل كاملة للصفحة مع جميع الأنماط والـ scripts.
إليك مثال على الكود الخاص بي:
```javascript
// طريقة سيئة - تعيد تحميل الصفحة
function goToAbout() {
window.location.href = '/about';
}
// طريقة جيدة