ما هي أفضل طريقة لإعادة توجيه شخص ما تلقائيًا إلى صفحة ويب أخرى؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

لم أتعلم جافا سكريبت مطلقًا، لكني أتخيل أن هذه مشكلة بسيطة جدًا.أردت فقط معرفة الطريقة الأكثر نصحًا بها هذه الأيام.

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

المحلول

// use this to avoid redirects when a user clicks "back" in their browser
window.location.replace('http://somewhereelse.com');

// use this to redirect, a back button call will trigger the redirection again
window.location.href = "http://somewhereelse.com";

// given for completeness, essentially an alias to window.location.href
window.location = "http://somewhereelse.com";

تعديل : في. يشبه المستخدم الذي نشر الجواب الأفضل ترك SO، لقد عززت إجاباته هنا

نصائح أخرى

الأكثر نصح؟لعدم القيام بذلك. HTTP هو بعيد أكثر ملاءمة للوظيفة من جافا سكريبت (محركات البحث تتبعها، يمكنك تحديد ما إذا كانت دائمة أم لا، فهي أسرع، وما إلى ذلك).

الإخفاق في ذلك…

إذا كنت تريد إعادة توجيه فورية:

window.location.replace('http://example.com/');

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

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

window.location.href = 'http://example.com/';

تذكر أن يكون لديك بديل غير JavaScript.عادةً ما يكون الرابط هو الخيار الأفضل، ولكنه يعتمد على السياق.

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

واحد والمهم أن نتذكر عند إعادة توجيه الصفحة باستخدام جافا سكريبت، وتوفير دائما غير جافا سكريبت إعادة توجيه كذلك! ومن شأن الارتباط به، أو أفضل علامة <META>، على سبيل المثال: <meta http-equiv="refresh" content="2;url=http://example.com">

وهذه الأيام، وأعتقد أن الأسلوب الأكثر نصح هو عدم القيام جافا سكريبت ( أو ميتا) الموجهات. هل حقا في حاجة إليها ؟ هل يمكن استخدام رأس إعادة توجيه HTTP بدلا من ذلك؟

ووW3C في محتوى ويب إرشادات الوصول (7.4) أيضا تثبيط إنشاء صفحات التحديث التلقائي، لأن معظم متصفحات الويب لا تسمح للمستخدم لتعطيل أو السيطرة على معدل التحديث

وهناك طريقة أخرى للقيام بذلك مع الملفات المحلية من خلال ذلك

<script type="text/javascript">
function Redirect(){
  window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>

<!-- begin snippet: js hide: false console: true babel: false -->

<script type="text/javascript">
function Redirect(){
  window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top