سؤال

أقوم ببناء سلسلة من الأكورديونات الأساسية لمشروع ما.

نريدهم أن يكون لديهم صفحات ثابتة وقابلة للربط.لذلك قمنا بإنشاء صفحات فردية لكل حالة من الحالات المفتوحة أيضًا.

على سبيل المثال،

/ whoweare هو شريط التمرير الرئيسي.

لكن لدينا شريط منزلق فرعي يقع في /whoweare /whatwedo

ما أتطلع إلى القيام به هو أنه عندما ينقر المستخدم على رأس /whoweare، يتم فتح شريط التمرير، ويتم تحديث شريط URL إلى /whoweare/whatwedo، ولكن لا توجد عملية إعادة توجيه فعلية.يجب أن يتغير موقع URL ببساطة، لا أكثر.

لقد حاولت استخدام

window.location.replace($(this).attr('href'));
return false;

ولكن يبدو أن هذا لم يحقق ما أردت، ولا يزال يتم إعادة تحميله في صفحة جديدة.

أي اقتراحات أخرى؟

هل كانت مفيدة؟

المحلول

لا يمكنك تغيير عنوان URL دون إعادة التوجيه - سيكون ذلك كابوسًا للتصيد الاحتيالي (تغيير عنوان URL إلى عنوان البنك أثناء البقاء في موقع التصيد الاحتيالي، على سبيل المثال).

يمكنك فقط التعامل مع تجزئة المستند - أي. http://domain.com/#identifier - هكذا يفعل جوجل وفيسبوك وما إلى ذلك.تزويد مواقع AJAX بدعم سجل المتصفح.

نسخة مكررة بالضبط #352343 تغيير شريط عنوان المتصفح بدون تحديث.

تحديث: يسمح HTML5 الآن pushState, ، ولكن داخل نفس النطاق فقط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top