أضفت الكود التالي إلى صفحة 404 للعودة تلقائياً إلى الصفحة السابقة:
<meta http-equiv="refresh" content="5;url=javascript:history.back()" />
لكنها لم تعمل. ما المشكلة؟
انظر الشيفرة المصدرية للصفحة التالية:
أضفت الكود التالي إلى صفحة 404 للعودة تلقائياً إلى الصفحة السابقة:
<meta http-equiv="refresh" content="5;url=javascript:history.back()" />
لكنها لم تعمل. ما المشكلة؟
انظر الشيفرة المصدرية للصفحة التالية:
لا انصحك بهذا الكود سيربك الزائر من الافضل ان تضيف صفحة بها رابط العودة للوراء
لكن اذا كنت ترغب في ذلك يمكن استخدام هذا الكود
<script>
function goBack() { window.history.back() }
</script>
<body>
<button onclick="goBack()">Go Back</button>
</body>
المصدر
قد يفيد
يمكن حل المشكلة من خلال إدراج كود JS اعتيادي في الصفحة، لكن أود معرفة مشكلة الكود السابق، أي بالاستعانة بالوسم meta.
طبقا لـ
منع التنفيذ للجافاسكريبت في الـ meta مرتبط بالحماية من الـ XSS ولكن ممكن تجاوزه برابط بيانات dataurl مثل
<html>
<head>
<meta http-equiv='Refresh' content='0;url=data: text/html,<script>document.documentElement.innerHTML = "404 Error";setTimeout(function(){history.back()},2000);</script>'>
<head>
<body>
</body>
</html>
للتجربة
بالمناسبة، هل هناك كود ما يمكن أن تضعه في الموقع، وعندما يدخل الزار تقوم الصفحة بتنشيط نفسها وتعيد تحميل كل الملفات.. هذا ضروري في حالة قمت بتغيير تصميم الموقع، وحدث شيء ما (لم افهمه ماهو) يجعل التصميم يبقى كما هو عند الزائر، ( أو ربما عند من لا يعيد تشغيل حاسوبه؟ مثلي؟) والحل لذلك أن يضغط الزار على ctrl + f5
أعرف هذه المشكلة ولا أدري إن كان لها حل فعلاً.
هذه المشكلة تتعلق بالملفات المخزنة في الكاش. منطقياً يجب أن يكون المتصفح قادراً على المقارنة دائماً بين ملفات الكاش ونسخها المقابلة على الملقم، وإعادة تحميل تلك الملفات حال اكتشافه أي تعديل لتسخ تلك الملفات على الملقم، حتى لو لم تكن مدة صلاحية تخزينها في الذاكرة المحلية على المتصفح (الكاش) قد انتهت بعد.
طبعاً يمكن حل هذه المشكلة يدوياً عن طريق مسح الكاش، لكن برمجياً لا أعلم.
لكن هذه الأكواد مهمتها عدم السماح بأي تخزين، صحيح؟
السائل هنا (على الرابط الذي ذكرته) يتطرق لمشكلة أمنية تخص موقعه، ويريد إلغاء مسألة التخزين تماماً.
في الحالات العامة، التخزين مهم جداً لتوفير طلبات HTTP، والحل الوسط هو التعديل المشروط.
أهلا أخي
الفكرة جميلة أن تعيد الزائر الى الزراء في حالة أنه دخل الى رابط غير موجود في موقعك
لكن الهذف من صفحة الخطأ 404 هو أن تقول للزائر أنك أخطأت في الرابط الذي إتبعته لكي لا يرتبك الزائر
فمثلا يمكنك الدخول الى مدونتي من هنا :
و أدخل الى أي تدوينة و حاول تغيير عنوان التدوينة الذي في الرابط و سترى أنني أخبر الزائر أن هذه الصفحة لم تعد موجودة و أضع له رابط للصفحة الرئيسية للموقع
حتى الأمس، كنت أوجه المستخدم نحو الصفحة الرئيسية، كما تفعل أنت، لكني وجدت أن العودة للوراء منطقية أكثر، طبعاً في كلا الحالتين (سواء العودة إلى الوراء أو الانتقال للصفحة الرئيسية) أنا أتكلم عن انتقال آلي بعد عداد زمني مدته كما تلاحظ في الكود الذي أتكلم عنه هنا 5 ثوان، أي أن الزائر سيكون قادراً على قراءة رسالة 404 قبل مغادرة الصفحة.
لكن من وجهة نظر (تسويقية)، أعتقد أن الانتقال للصفحة الرئيسية أفضل، لأن العودة للوراء قد تعني خروج الزائر من الموقع نهائياً إن كانت الصفحة السابقة صفحة من خارج الموقع.
بصراحة، يبدو أني سأعود لفكرة نقل الزائر إلى الصفحة الرئيسية بدلاً من الصفحة السابقة :)
التعليقات