الهاش/المرساة في الرابط يمنع تحديثات الرابط اللاحقة

في موقعنا الإلكتروني المدعوم بمنصة Discourse، لدينا قسم منفصل يربط بعناوين محددة باستخدام رابط تشعبي (hash) في عنوان URL، مثل: https://mysite.com/my-page#faq

عندما يتابع المستخدم هذا الرابط، يتم تحديث عنوان URL إلى هذه القيمة، لكن التنقل لاحقًا لا يقوم بتحديث عنوان URL بعد ذلك.

هل هناك سبب يمنع الرابط التشعبي (hash) من تحديث أي عنوان URL؟ هذا السلوك يكسر تطبيقنا حاليًا بعد بعض الروابط في تطبيقنا، مثل ‘understand.html#understand’.

يمكن ملاحظة هذا السلوك أيضًا في أي منتدى مدعوم بمنصة Discourse، وفيما يلي مثال قابل للتكرار بشكل minimal:

  1. انتقل إلى https://meta.discourse.org/
  2. أضف #foo إلى عنوان URL، ليصبح: https://meta.discourse.org/#foo
  3. انقر على أي موضوع، وستلاحظ أن عنوان URL لا يتم تحديثه

شكرًا مقدّمًا!

أعتقد أن هذه المسألة تتعلق بتصحيح أخطاء في جافا سكريبت، وأن الأنسب لها هو @j.jaffeux.

المشكلة هنا هي أن الموجه (router) الخاص بنا يستخدم علامات التجزئة (hashes) في بعض عناوين URL (وبشكل خاص عند الانتقال إلى أجزاء من المنشورات، وأعتقد أن الأسئلة الشائعة تفعل ذلك أيضًا). أفترض أنه عندما تكون العلامة غير معروفة لدينا، فإنها تتسبب في تعطيل الأمور، بينما يجب أن نكون قادرين على تجاهلها.

@eviltrout أعتقد أن هذا سيُجدي نفعًا: