كيفية مراقبة التغييرات في عنوان URL (معرف الشظية - جزء المرساة من عنوان URL)

StackOverflow https://stackoverflow.com/questions/1657386

سؤال

أقوم بإنشاء موقع على شبكة الإنترنت يميل إلى التعامل مع جميع الطلب في صفحة واحدة (AJAX). لذلك اعتقدت أنني يمكن أن مصيدة كل مستخدم انقر على الرابط والتحقق إذا انها على موقع الويب الخاص بي أفعل شيئا جافا سكريبت مثل طلب Ajax على سبيل المثال، آخر سوف يفتح الرابط مثل المعتاد!

القيام بمشاهدة على نافذة. لم تنجح الموقع! وعلاوة على ذلك، لا أعرف ما إذا كان هناك أي حال للحصول على جزء URL بعد علامة #. ملاحظة: كل من Gmail، وفيسبوك يفعل ذلك أعتقد!، أنها تستخدم شيئا مثل هذا:
http://mail.google.com/mail/#صندوق الوارد
http://www.facebook.com/home.php.# / علبة الوارد /؟ المرجع = ميغابايت

يرجى النظر في: أنني أحب استخدام jQuery في مشاريعي، لذلك أي حل باستخدامه هو المفضل.

أيه أفكار؟

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

المحلول

هنا قراءة جيدة آخر: استعادة التنقل المتصفح التقليدي إلى تطبيقات AJAX

مقتطف من المقال:

اعتمد العديد من المطورين أجاكس كوسيلة لتطوير تطبيقات ويب غنية تقريبا باعتبارها تفاعلية واستجابة لها كتطبيقات سطح المكتب. يعمل AJAX من خلال تقسيم ويب واجهة المستخدم إلى قطاعات مختلفة. يمكن للمستخدم إجراء عملية على شريحة واحدة ثم ابدأ العمل على قطاعات أخرى دون انتظار الانتهاء من التشغيل الأول.

لكن أجاكس لديه عيب كبير. إنه يكسر سلوك المتصفح القياسي، مثل دعم الظهر، إلى الأمام، وإشارة مرجعية. بدلا من إجبار المستخدمين على التكيف مع أوجه القصور بجائزة AJAX، يجب على المطورين جعل تطبيقات AJAX الخاصة بهم تمتثل لأسلوب تفاعل الويب التقليدي، .......

نصائح أخرى

ال شظية يتم استخدام جزء من عنوان URL لتمكين محفوظات التنقل (الأزرار الخلفية والأمام) على مواقع الويب التي تدعم AJAX. إذا كنت ترغب في "فخ" النقرات على الروابط، لأنك تستخدم JQuery على أي حال، فيمكنك القيام بذلك:

$('a').click(function()
{
   var item = $(this);
   var url = item.attr('href');
   // your logic here
});

إذا كنت تستخدم شظايا (Window.Location.hash) في كوكبة مع AJAX، لاحظ أن IE6 يقدم جزء جزء من عنوان URL في طلبات AJAX التي يمكن أن تؤدي إلى أخطاء ذات صعبة للغاية تصحيح، لذلك كن على دراية بذلك.

هناك hashchange تم إرسال الحدث على النافذة للحصول على أحدث المتصفحات.

بسيط:

if(window.location.hash) {
  // Fragment exists
} else {
  // Fragment doesn't exist
}

وصلة:كيف يمكنك التحقق من # حاش في عنوان URL باستخدام جافا سكريبت؟

انظر رابط pekka ل كيف يمكنك التحقق من # حاش في عنوان URL باستخدام جافا سكريبت؟ للنظر في التجزئة. فقط ضع هذه الوظيفة في رد الاتصال window.setInterval()

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