javascript - كيف يمكنني إعادة التوجيه إلى صفحة ويب أخرى؟



jquery redirect (20)

كيف يمكنني إعادة توجيه المستخدم من صفحة إلى أخرى باستخدام jQuery أو JavaScript فقط؟

https://code.i-harness.com


تحذير: تم تقديم هذه الإجابة كحل ممكن فقط ؛ من الواضح أنه ليس الحل الأفضل ، لأنه يتطلب jQuery. بدلاً من ذلك ، تفضل حل JavaScript النقي.

$(location).attr('href', 'http://.com')

طريقة جافا سكريبت القياسية "الفانيليا" لإعادة توجيه صفحة:

window.location.href = 'newPage.html';

إذا كنت هنا لأنك تفقد HTTP_REFERER عند إعادة التوجيه ، فاستمر في القراءة:

القسم التالي مخصص لأولئك الذين يستخدمون HTTP_REFERER كواحد من العديد من التدابير الآمنة (رغم أنه ليس إجراء وقائيًا كبيرًا). إذا كنت تستخدم Internet Explorer 8 أو أقل ، فسوف تضيع هذه المتغيرات عند استخدام أي شكل من أشكال إعادة توجيه صفحة JavaScript (location.href ، وما إلى ذلك).

فيما يلي سنقوم بتنفيذ بديل لـ IE8 أو أقل حتى لا نفقد HTTP_REFERER. وإلا يمكنك دائمًا استخدام window.location.href .

يمكن أن يكون الاختبار مقابل HTTP_REFERER (لصق عنوان URL ، الجلسة ، إلخ) مفيدًا في معرفة ما إذا كان الطلب مشروعًا أم لا. ( ملاحظة: هناك أيضًا طرق للتغلب على / محاكاة ساخرة لهؤلاء المحيلين ، كما هو موضح بواسطة رابط التدلي في التعليقات)

حل بسيط للاختبار عبر المستعرض (الرجوع إلى window.location.href لـ Internet Explorer 9+ وجميع المتصفحات الأخرى)

الاستخدام: redirect('anotherpage.aspx');

function redirect (url) {
    var ua        = navigator.userAgent.toLowerCase(),
        isIE      = ua.indexOf('msie') !== -1,
        version   = parseInt(ua.substr(4, 2), 10);

    // Internet Explorer 8 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
    else { 
        window.location.href = url; 
    }
}

لا يقوم المرء ببساطة بإعادة التوجيه باستخدام jQuery

مسج ليست ضرورية ، و window.location.replace(...) أفضل محاكاة لإعادة توجيه HTTP.

window.location.replace(...) أفضل من استخدام window.location.href ، لأن replace() لا يحتفظ بالصفحة الأصلية في محفوظات الجلسة ، مما يعني أن المستخدم لن يتعثر في خلفية لا تنتهي أبدًا الإخفاق زر.

إذا كنت ترغب في محاكاة شخص ما بالنقر فوق أحد الارتباطات ، فاستخدم location.href

إذا كنت تريد محاكاة إعادة توجيه HTTP ، استخدم location.replace

فمثلا:

// similar behavior as an HTTP redirect
window.location.replace("http://.com");

// similar behavior as clicking on a link
window.location.href = "http://.com";

***** كان السؤال الأصلي - "كيفية التراجع عن استخدام البقالة" ، ومن ثم طلب الاجابة على الطلب >> حالة الاستخدام التكميلي *****

لإعادة التوجيه إلى صفحة باستخدام JavaScript:

  window.location.href = "/contact/";

أو إذا كنت بحاجة إلى تأخير:

setTimeout(function () {
  window.location.href = "/contact/";
}, 2000);   // Time in milliseconds

يسمح لك jQuery بتحديد العناصر من صفحة ويب بسهولة. يمكنك العثور على أي شيء تريده على الصفحة ثم استخدام jQuery لإضافة مؤثرات خاصة أو الرد على تصرفات المستخدم أو إظهار وإخفاء المحتوى داخل أو خارج العنصر الذي حددته. تبدأ كل هذه المهام بمعرفة كيفية تحديد عنصر أو حدث .

     $('a,img').on('click',function(e){
         e.preventDefault();
         $(this).animate({
             opacity: 0 //Put some CSS animation here
         }, 500);
         setTimeout(function(){
           // OK, finished jQuery staff, let's go redirect
           window.location.href = "/contact/";
         },500);
     });

تخيل أن أحدهم كتب سكريبت / البرنامج المساعد وهو 10000 سطر من الكود ؟! حسنًا ، باستخدام jQuery ، يمكنك الاتصال بهذا الرمز باستخدام سطر أو سطرين فقط.


أعتقد أيضًا أن location.replace(URL) هو أفضل طريقة ، ولكن إذا كنت ترغب في إخطار محركات البحث بإعادة توجيهك (لا يقوموا بتحليل شفرة JavaScript لمعرفة إعادة التوجيه) ، فيجب عليك إضافة rel="canonical" meta علامة إلى موقع الويب الخاص بك.

إضافة قسم noscript مع علامة تعريف تحديث HTML فيه ، هو أيضا حل جيد. أقترح عليك استخدام أداة إعادة توجيه جافا سكريبت هذه لإنشاء عمليات إعادة التوجيه. كما أن لديها دعم Internet Explorer لتمرير مرجع HTTP.

نموذج التعليمات البرمجية دون تأخير يشبه هذا:

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->

اكتب أولاً بشكل صحيح. تريد التنقل داخل تطبيق لرابط آخر من التطبيق الخاص بك لرابط آخر. هنا هو الكود:

window.location.href = "http://www.google.com";

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


جافا سكريبت:

window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

مسج:

var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window


على وظيفة النقر الخاصة بك ، فقط أضف:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});

في JavaScript و jQuery ، يمكننا استخدام الكود التالي لإعادة توجيه الصفحة إلى صفحة أخرى:

window.location.href="http://google.com";
window.location.replace("page1.html");

ليست هناك حاجة jQuery. انت تستطيع فعل ذالك:

window.open("URL","_self","","")

إنه بهذه السهولة!

أفضل طريقة لبدء طلب HTTP هي مع document.loacation.href.replace('URL') .


هذا يعمل مع كل متصفح:

window.location.href = 'your_url';

هنا هو إعادة توجيه تأخير الوقت. يمكنك ضبط وقت التأخير على كل ما تريد:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>

هناك الكثير من الطرق للقيام بذلك.

// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'

// window.history
window.history.back()
window.history.go(-1)

// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')


// Probably no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';

// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')


يمكنك إعادة التوجيه في jQuery مثل هذا:

$(location).attr('href', 'http://yourPage.com/');

يوفر لك JavaScript العديد من الطرق لاسترداد وتغيير عنوان URL الحالي الذي يتم عرضه في شريط عنوان المتصفح. تستخدم كل هذه الطرق كائن الموقع ، والذي يعد خاصية لكائن النافذة. يمكنك إنشاء كائن موقع جديد له عنوان URL الحالي كما يلي ..

var currentLocation = window.location;

الهيكل الأساسي لعنوان URL

<protocol>//<hostname>:<port>/<pathname><search><hash>

  1. Protocol - يحدد اسم البروتوكول الذي يجب استخدامه للوصول إلى المورد على الإنترنت. (HTTP (بدون SSL) أو HTTPS (مع SSL))

  2. اسم المضيف - يحدد اسم المضيف المضيف الذي يملك المورد. على سبيل المثال ، www..com. يوفر الخادم خدمات باستخدام اسم المضيف.

  3. port - رقم المنفذ المستخدم للتعرف على عملية محددة يتم توجيه رسالة الإنترنت أو الشبكة الأخرى إليها عند وصوله إلى الخادم.

  4. اسم المسار - يعطي المسار معلومات حول المورد المحدد داخل المضيف الذي يريد عميل الويب الوصول إليه. على سبيل المثال ، .com/index.html.

  5. الاستعلام - تتبع سلسلة الاستعلام مكون المسار ، وتوفر سلسلة من المعلومات التي يمكن أن يستخدمها المورد لأغراض معينة (على سبيل المثال ، كمعلمات للبحث أو كبيانات سيتم معالجتها).

  6. hash - جزء الربط من عنوان URL ، يتضمن علامة التجزئة (#).

باستخدام خصائص كائن الموقع هذه ، يمكنك الوصول إلى جميع مكونات عنوان URL هذه

  1. has--Sets أو إرجاع جزء الربط من عنوان URL.
  2. host -Sets أو إرجاع اسم المضيف ومنفذ عنوان URL.
  3. اسم المضيف -تعيين أو إرجاع اسم مضيف URL.
  4. href -Sets أو إرجاع عنوان URL بأكمله.
  5. اسم المسار -تعيين أو إرجاع اسم مسار URL.
  6. port - يقوم بتعيين أو إرجاع رقم المنفذ الذي يستخدمه الخادم لعنوان URL.
  7. بروتوكول -إعداد أو إرجاع بروتوكول URL.
  8. بحث -إعداد أو إرجاع جزء الاستعلام من URL

الآن إذا كنت ترغب في تغيير صفحة أو إعادة توجيه المستخدم إلى بعض الصفحات الأخرى ، يمكنك استخدام خاصية href لكائن الموقع مثل هذا

يمكنك استخدام خاصية href لكائن الموقع.

window.location.href = "http://www..com";

يحتوي كائن الموقع أيضًا على هذه الطرق الثلاث

  1. assign () - تحميل مستند جديد.
  2. إعادة تحميل () - إعادة تحميل المستند الحالي.
  3. استبدال () - يستبدل المستند الحالي بمستند جديد

يمكنك استخدام assign () واستبدال الطرق أيضًا لإعادة التوجيه إلى صفحات أخرى مثل هذه

location.assign("http://www..com");

location.replace("http://www..com");

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

يمكنك تغيير خاصية href الخاصة بكائن الموقع باستخدام jQuery أيضًا مثل هذا

$(location).attr('href',url);

وبالتالي ، يمكنك إعادة توجيه المستخدم إلى عنوان url آخر.


# HTML إعادة توجيه الصفحة باستخدام jQuery / JavaScript

جرب هذا المثال رمز:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

إذا كنت ترغب في إعطاء عنوان URL كامل مثل window.location = "www.google.co.in"; .


كان عليّ فقط تحديث هذا السخرية بأسلوب مسج أحدث:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);

هناك ثلاث طرق رئيسية للقيام بذلك ،

window.location.href='blaah.com';
window.location.assign('blaah.com');

و...

window.location.replace('blaah.com');

آخرها هو الأفضل ، بالنسبة لإعادة التوجيه التقليدية ، لأنها لن تحفظ الصفحة التي ذهبت إليها قبل إعادة توجيهك في سجل البحث. ومع ذلك ، إذا كنت ترغب فقط في فتح علامة تبويب باستخدام JavaScript ، يمكنك استخدام أي مما سبق. 1

تحرير: windowالبادئة اختيارية.





redirect