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





15 Answers

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

$(location).attr('href', 'http://stackoverflow.com')
javascript jquery redirect

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




استعمال:

// 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')



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

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

لاحظ أن الصفحة الحالية في المثال يتم التعامل معها بشكل مختلف في الشفرة ومع CSS.

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

$(document).ready( function() {
    $('a.pager-link').click( function() {
        var page = $(this).attr('href').split(/\?/)[1];
        $.ajax({
            type: 'POST',
            url: '/path-to-service',
            data: page,
            success: function(content) {
               $('#myTable').html(content);  // replace
            }
        });
        return false; // to stop link
    });
});



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

window.location = window.location.host

سيكون من المفيد إذا كان لديك ثلاث بيئات مختلفة مثل التطوير ، التدريج ، والإنتاج.

يمكنك استكشاف هذه النافذة أو كائن window.location بمجرد وضع هذه الكلمات في وحدة تحكم Chrome أو وحدة تحكم Firebug .







قبل البدء ، jQuery هي مكتبة جافا سكريبت المستخدمة في معالجة DOM. لذلك يجب ألا تستخدم jQuery لإعادة توجيه الصفحة.

اقتباس من Jquery.com:

على الرغم من أنه قد يتم تشغيل jQuery بدون مشاكل رئيسية في إصدارات المتصفح الأقدم ، فإننا لا نختبر بنشاط jQuery في هذه الإصدارات ، وعمومًا لا نصلح الأخطاء التي قد تظهر في هذه الإصدارات.

تم العثور عليه هنا: https://jquery.com/browser-support/

لذا ، لا يعد jQuery حلًا نهائيًا للجميع ويكون متوافقًا مع التوافق مع الإصدارات السابقة.

الحل التالي باستخدام جافا سكريبت الخام يعمل في جميع المتصفحات وكان معيارا لفترة طويلة حتى لا تحتاج إلى أي مكتبات لدعم المتعاملين.

ستعيد هذه الصفحة التوجيه إلى google.com بعد 3000 ميللي ثانية

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

الخيارات المختلفة هي كما يلي:

window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL

window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

عند استخدام الاستبدال ، لن يعود زر الرجوع إلى صفحة إعادة التوجيه ، كما لو أنه لم يكن في التاريخ أبدًا. إذا كنت تريد أن يتمكن المستخدم من الرجوع إلى صفحة إعادة التوجيه ، فاستخدم window.location.href أو window.location.assign . إذا كنت تستخدم خيارًا يسمح للمستخدم بالعودة إلى صفحة إعادة التوجيه ، فتذكر أنه عند إدخال صفحة إعادة التوجيه ، ستعيد توجيهك مرة أخرى. لذا ضع ذلك في الاعتبار عند اختيار خيار لإعادة التوجيه. في الحالات التي تكون فيها الصفحة تعيد التوجيه فقط عند تنفيذ إجراء من جانب المستخدم ، فإن عرض الصفحة في سجل زر الرجوع سيكون مقبولًا. ولكن إذا تمت إعادة توجيه الصفحة تلقائيًا ، فيجب استخدام الاستبدال بحيث يمكن للمستخدم استخدام زر الرجوع دون الرجوع إلى الصفحة التي يرسلها إعادة التوجيه.

يمكنك أيضًا استخدام بيانات التعريف لتشغيل إعادة توجيه الصفحة كما هو متبع.

META تحديث

<meta http-equiv="refresh" content="0;url=http://evil.com/" />

META الموقع

<meta http-equiv="location" content="URL=http://evil.com" />

اختطاف BASE

<base href="http://evil.com/" />

يمكن العثور على هذه الصفحة على العديد من الطرق الأخرى لإعادة توجيه العميل الذي لا يطمئن إلى صفحة لا يرغبون في الذهاب إليها (لا يعتمد أحدهم على jQuery):

https://code.google.com/p/html5security/wiki/RedirectionMethods

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

الجزء التالي هو افتراضي:

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

يرجى مراجعة إرشادات مشرفي المواقع من Google حول عمليات إعادة التوجيه: https://support.google.com/webmasters/answer/2721217?hl=en&ref_topic=6001971

إليك صفحة صغيرة مرحة تخرجك من الصفحة.

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

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




يمكنك القيام بذلك دون jQuery على النحو التالي:

window.location = "http://yourdomain.com";

وإذا كنت تريد jQuery فقط ، فيمكنك فعل ذلك مثل:

$jq(window).attr("location","http://yourdomain.com");



# إعادة توجيه صفحة 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"; .




يجب أن تضع هذا السطر في شفرتك:

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

إذا لم يكن لديك jQuery ، فانتقل إلى JavaScript باستخدام:

window.location.replace("http://.com");
window.location.href("http://.com");



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

لإعادة التوجيه فقط إلى صفحة باستخدام 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 ، يمكنك الاتصال بهذا الرمز مع سطر أو خطين فقط.




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

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

هذا سهل!

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




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

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

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




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

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



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

<!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>



أنا فقط اضطررت لتحديث هذا السخافة من خلال طريقة jQuery أحدث:

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





Related