it-swarm.asia

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

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

7729
venkatachalam

لا يقوم المرء ببساطة بإعادة التوجيه باستخدام 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://stackoverflow.com");

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

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

$(location).attr('href', 'http://stackoverflow.com')
1570
Boris Guéry

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

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


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


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

فيما يلي سنقوم بتنفيذ بديل لـ IE8 & lower حتى لا نفقد 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; 
    }
}
579
Mark Pieszak - Trilon.io

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

// 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')
392
Govind Singh

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

window.location.href = 'your_url';
302
Fred

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

<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
    });
});
280
tvanfosson

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

إضافة قسم noscript مع علامة تعريف تحديث HTML فيه ، هو أيضا حل جيد. أقترح عليك استخدام هذا أداة إعادة توجيه JavaScript لإنشاء عمليات إعادة التوجيه. كما أن لديها دعم 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 -->
237
Patartics Milán

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

window.location = window.location.Host

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

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

212
Nadeem Yasin

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

var currentLocation = window.location;

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

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

enter image description here

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

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

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

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

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

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

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

  1. hash -Sets أو إرجاع جزء الربط من URL.
  2. Host -Sets أو إرجاع اسم المضيف ومنفذ عنوان URL.
  3. hostname -Sets أو إرجاع اسم مضيف URL.
  4. href -Sets أو إرجاع URL بالكامل.
  5. pathname -Sets أو إرجاع اسم مسار URL.
  6. port -Sets أو إرجاع رقم المنفذ الذي يستخدمه الخادم لعنوان URL.
  7. protocol -Sets أو إرجاع بروتوكول URL.
  8. search -Sets أو إرجاع جزء الاستعلام من URL

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

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

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

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

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

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

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

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

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

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

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

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

199
Nikhil Agrawal

في الأساس jQuery هو مجرد جافا سكريبت إطار وللقيام ببعض الأشياء مثل إعادة التوجيه في هذه الحالة ، يمكنك فقط استخدام جافا سكريبت خالص ، لذلك في هذه الحالة لديك 3 خيارات باستخدام Vanilla JavaScript:

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

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

2) باستخدام الموقع تعيين ، سيؤدي هذا إلى الاحتفاظ بالسجل لك وباستخدام زر الرجوع ، يمكنك العودة إلى الصفحة الأصلية:

window.location.assign("http://stackoverflow.com");

3) أوصي باستخدام إحدى هذه الطرق السابقة ، ولكن قد يكون هذا هو الخيار الثالث باستخدام JavaScript فقط:

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

يمكنك أيضًا كتابة وظيفة في jQuery لمعالجتها ، لكن لا يُنصح بها لأنها وظيفة جافا سكريبت فقط من سطر واحد ، كما يمكنك استخدام جميع الوظائف المذكورة أعلاه بدون نافذة إذا كنت بالفعل في نطاق النافذة ، على سبيل المثال ، يمكن أن تكون window.location.replace("http://stackoverflow.com");location.replace("http://stackoverflow.com");

كما أريهم جميعًا على الصورة أدناه:

 location.replace location.assign

188
Alireza

يجب أن يكون قادراً على ضبط استخدام window.location.

مثال:

window.location = "https://stackoverflow.com/";

فيما يلي منشور سابق عن الموضوع:

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

188
Newse

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

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

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

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

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

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

ستتم إعادة توجيه هذه الصفحة إلىGoogleبعد 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 Hijacking

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

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

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

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

الجزء التالي افتراضية:

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

يرجى مراجعة إرشادات مشرفي المواقع من Google حول عمليات إعادة التوجيه: https://support.google.com/webmasters/answer/2721217؟hl=ar&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>

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

158
Patrick W. McMahon
var url = 'asdf.html';
window.location.href = url;
157
user188973

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

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

وإذا كنت ترغب فقط في مسج يمكنك أن تفعل ذلك مثل:

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

هذا يعمل مع مسج:

$(window).attr("location", "http://google.fr");
137
xloadx

# صفحة 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";.

84
Sakthi Karthik

تحتاج إلى وضع هذا السطر في الكود:

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

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

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
77
Ashish Ratan

لذا ، فإن السؤال هو كيفية إنشاء صفحة إعادة توجيه ، وليس كيفية إعادة توجيه إلى موقع على شبكة الإنترنت؟

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

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

لذلك قل أنك وضعت هذا المقتطف في ملف redirect/index.html على موقع الويب الخاص بك ، ويمكنك استخدامه مثل ذلك.

http://www.mywebsite.com/redirect?url=http://stackoverflow.com

وإذا انتقلت إلى هذا الرابط ، فستعيد توجيهك تلقائيًا إلى stackoverflow.com .

رابط إلى الوثائق

وهذه هي الطريقة التي تقوم بها بسيط إعادة توجيه الصفحة باستخدام جافا سكريبت

تصحيح:

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

مثال:

العملية: store home => إعادة توجيه الصفحة إلى google => google

عندما تكون في google: google => زر الرجوع في المتصفح => متجر المنزل

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

if( url ) window.location.replace(url);

مع

if( url ) window.location.href = url;
75
iConnor

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

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

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

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

69
SergeDirect

جرب هذا:

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

مقتطف الشفرة على سبيل المثال .

58
tilak

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

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

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

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

54
MayorMonty

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

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

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

51
Anup

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

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

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

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

جافا سكريبت:

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
42
lalithkumar

ECMAScript 6 + مسج ، 85 بايت

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

من فضلك لا تقتلني ، هذه مزحة. إنها مزحة - إنها فكاهة. انها مزحة.

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

يبدو أن Ferrybig يحتاج إلى شرح مزحة (لا يزال يمزح ، أنا متأكد من أن هناك خيارات محدودة في نموذج المراجعة) ، لذلك دون مزيد من اللغط:

تستخدم الإجابات الأخرى attr() jQuery على الكائنات location أو window بشكل غير ضروري.

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

تم تسمية الوظيفة jQueryCode على الرغم من عدم وجود شيء حول هذا الموضوع ، واستدعاء الوظيفة somethingCode أمر مروع ، خاصة عندما يكون شيء ما ليس لغة.

"85 بايت" هي إشارة إلى Code Golf. من الواضح أن لعبة الجولف ليست شيئًا يجب عليك فعله خارج لعبة غولف التعليمات البرمجية ، وعلاوة على ذلك ، من الواضح أن هذه الإجابة ليست لعبة غولف.

أساسا ، تذلل.

42
1j01

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

<!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>
39
Stefan Gruenwald

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

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

و...

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

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

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

36
Ben

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

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

اكتب الكود أدناه بعد قسم PHP أو HTML أو jQuery. إذا كان في منتصف القسم PHP أو HTML ، فاستخدم العلامة <script>.

location.href = "http://google.com"
35
Bidyut

رمز jQuery لإعادة توجيه صفحة أو عنوان URL

الطريقة الأولى

إليك رمز jQuery لإعادة توجيه الصفحة. نظرًا لأنني وضعت هذا الرمز في دالة $ (document) .ready () ، فسيتم تنفيذه بمجرد تحميل الصفحة.

var url = "http://stackoverflow.com";
$(location).attr('href',url);

يمكنك حتى تمرير عنوان URL مباشرةً إلى attr () الطريقة ، بدلاً من استخدام متغير.

الطريقة الثانية

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

يمكنك أيضًا رمز مثل هذا (كلاهما نفس داخليًا):

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

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

الطريق الثالث

هناك طريقة أخرى لإعادة توجيه صفحة باستخدام JavaScript ، طريقة replace() لكائن window.location. يمكنك تمرير عنوان URL جديد إلى طريقة replace() ، وسيحاكي إعادة توجيه HTTP. بالمناسبة ، تذكر أن طريقة window.location.replace() لا تضع الصفحة الأصلية في سجل الجلسة ، والتي قد تؤثر على سلوك زر الرجوع. في وقت ما ، هذا ما تريد ، لذا استخدمه بعناية.

// Doesn't put originating page in history
window.location.replace("http://stackoverflow.com");

الطريق الرابع

like attr () method (بعد jQuery 1.6 intro)

var url = "http://stackoverflow.com";
$(location).prop('href', url);
32
Divyesh Kanzariya

في jQuery ، استخدم $(location).attr('href', url):

$(document).ready(function(){
    var url = "https://www.youtube.com/watch?v=JwMKRevYa_M";
    $(location).attr('href', url); // Using this
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

في raw JavaScript ، هناك عدة طرق لتحقيق ذلك:

window.location.href="https://www.youtube.com/watch?v=JwMKRevYa_M";

- يحدد خاصية href بشكل صريح.

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

- هل ذلك ضمنيًا لأن window.location يُرجع كائنًا ، والذي يقوم بتعيين خاصية href افتراضيًا.

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

- يستبدل موقع النافذة الحالية بالإطار الجديد.

self.location = "http://www.somewebsite.com";

- يحدد موقع النافذة الحالية نفسها.

فيما يلي مثال لإعادة توجيه جافا سكريبت بعد وقت معين (3 ثوان):

<script>
    setTimeout(function() {
        window.location.href = "https://www.youtube.com/";
    }, 3000);
</script>
29
Inconnu

باستخدام جافا سكريبت:

طريقة 1:

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

الطريقة 2:

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

باستخدام jQuery:

الأسلوب 1: $ (الموقع)

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

الطريقة 2: وظيفة قابلة لإعادة الاستخدام

jQuery.fn.redirectTo = function(url){
    window.location.href = url;
}

jQuery(window).redirectTo("http://google.com");
28
Kalpesh Panchal

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

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

ولكن يمكنك إنشاء وظيفة في jQuery لإعادة توجيه الصفحة:

jQuery.fn.redirect=function(url)
{
    window.location.href=url;
}

ونسمي هذه الوظيفة:

jQuery(window).redirect("http://stackoverflow.com/")
27
Muhammad Waqas

استخدم وظيفة jQuery:

$.extend({
  redirectPost: function(location, args) {
    var form = '';
    $.each(args, function(key, value) {
      form += '<input type="hidden" name="' + key + '" value="' + value + '">';
    });
    $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
  }
});

في التعليمات البرمجية التي تستخدمها مثل هذا:

$.redirectPost("addPhotos.php", {pimreference:  $("#pimreference").val(), tag: $("#tag").val()});
23
stratum

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

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

أو

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

أو

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

باستخدام jQuery:

$(window).attr("location","http://www.test.com");
18
vipul sorathiya
<script type="text/javascript">
var url = "https://yourdomain.com";

// IE8 and lower fix
if (navigator.userAgent.match(/MSIE\s(?!9.0)/))
{
    var referLink = document.createElement("a");
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
}

// All other browsers
else { window.location.replace(url); }
</script>
17
Jaydeep Jadav

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

 window.location.href='otherpage.com';
 window.location.assign('otherpage.com');
 //and...

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

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

إذا كنت مهتمًا بمعرفة المزيد عن المفهوم. يمكنك الذهاب من خلال مزيد من.

window.location.href; returns the href (URL) of the current page
window.location.hostname; returns the domain name of the web Host
window.location.pathname; returns the path and filename of the current page
window.location.protocol; returns the web protocol used (http: or https:)
window.location.assign; loads a new document
16
Must Keem J

في ما يلي رمز لإعادة التوجيه إلى بعض الصفحات الأخرى مع مهلة 10 ثوانٍ.

<script>
    function Redirect()
    {
        window.location="http://www.adarshkr.com";
    }

    document.write("You will be redirected to a new page in 10 seconds.");
    setTimeout('Redirect()', 10000);
</script>

يمكنك أيضًا القيام بذلك مثل هذا ، عند النقر فوق زر باستخدام location.assign:

<input type="button" value="Load new document" onclick="newPage()">
<script>
    function newPage() {
        window.location.assign("http://www.adarshkr.com")
    }
</script>
15
Adarsh Gowda K R

يمكنك استخدامه كما في التعليمة البرمجية التالية حيث getRequestToForwardPage هو تعيين الطلب ( URL ). يمكنك أيضًا استخدام عنوان URL الخاص بك.

function savePopUp(){
    $.blockUI();
    $.ajax({
        url:"saveGuestHouse?roomType="+$("#roomType").val(),
        data: $("#popForm").serialize(),
        dataType: "json",
        error: (function() {
            alert("Server Error");
            $.unblockUI();
    }),
    success: function(map) {
        $("#layer1").hide();
        $.unblockUI();
        window.location = "getRequestToForwardPage";
    }
});

هذا هو نفس سياق التطبيق.

إذا كنت ترغب في استخدام رمز معين فقط jquery ، فإن التعليمات البرمجية التالية قد تساعد:

 $(location).attr('href',"http://www.google.com");
 $jq(window).attr("location","http://www.google.com");
 $(location).prop('href',"http://www.google.com"); 
15
Vinay Sharma
<script type="text/javascript">
    if(window.location.href === "http://stackoverflow.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>
13
sneha

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

  1. باستخدام علامة تعريف في الرأس - <meta http-equiv="refresh" content="0;url=http://your-page-url.com" />. لاحظ أنه يتم استخدام content="0;... بعد عدد الثواني التي تحتاجها لإعادة توجيه الصفحة

  2. باستخدام JavaScript: window.location.href = "http://your-page-url.com";

  3. باستخدام jQuery: $(location).attr('href', 'http://yourPage.com/');

13
SantoshK

يمكنك استخدام:

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

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

ومع ذلك ، إذا كنت ترغب في الحصول على تأثير مثل النقر فوق رابط ، فيجب عليك البحث عن:

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

في هذه الحالة ، سيكون زر المستعرض الخلفي نشطًا.

13
madhur

استعمال:

function redirect(a) {
    location = a
}

ونسميها بـ: redirect([url]);

ليست هناك حاجة لـ hreflocation ، كما هو ضمني.

12
cascading-style

يمكنك كتابة Url.Action لحدث Click button في قسم البرنامج النصي كما يلي.

function onclick() {
        location.href = '@Url.Action("Index","Home")';
    }
12
wild coder

تطبيق صفحة واحدة ، ضمن نفس مسار التطبيق

window.location.pathname = '/stack';

JavaScript:

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

مسج:

$(location).attr('href', "http://www.stack.com");
$(window).attr('location', "http://www.stack.com");

Angular 4

import { Router } from '@angular/router';
export class NavtabComponent{
    constructor(private router: Router) {
    }
    this.router.navigate(['bookings/taxi']);
}
12
HD..

أود فقط إضافة طريقة أخرى:

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

<script>
    if(window.location.href == 'old_url')
    {
        window.location.href="new_url";
    }

    // Another URL redirect
    if(window.location.href == 'old_url2')
    {
        window.location.href="new_url2";
    }
</script>

للحصول على مثال الحياة الحقيقية ،

<script>
    if(window.location.href == 'https://old-site.com')
    {
        window.location.href="https://new-site.com";
    }

    // Another URL redirect
    if(window.location.href == 'https://old-site.com/simple-post.html')
    {
        window.location.href="https://new-site.com/simple-post.html";
    }
</script>

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

11
Maniruzzaman Akash

هذا سهل التنفيذ. يمكنك استخدام:

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

هذا سوف نتذكر تاريخ الصفحة السابقة. لذلك يمكن للمرء العودة من خلال النقر على زر العودة للمتصفح.

أو:

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

هذه الطريقة لا تتذكر محفوظات الصفحة السابقة. يصبح الزر الخلفي معطلًا في هذه الحالة.

11
Abhishek K. Upadhyay

إذا كنت تفضل استخدام جافا سكريبت خالص ، فقد أدركت أن استخدام document.location.href = "https://example.com" أو window.location.href = "https://example.com" يسبب مشاكل التوافق في Firefox. حاول بدلاً من ذلك استخدام:

location.href = "https://example.com";
location.replace("http://example.com");

في حالتي قد حل المشكلة. حظا سعيدا!

10
Alessandro Foolish Ciak DAnton

أستخدم بالفعل وظيفة إعادة توجيه (JavaScript). انها تعمل.

<script type="text/javascript">
    $(function () {
        //It's similar to HTTP redirect
        window.location.replace("http://www.Technomark.in");

        //It's similar to clicking on a link
        window.location.href = "Http://www.Technomark.in";
    })
</script>
10
user1012506
  1. location.assign ():

    لتعيين مسار الطريق عن طريق تمرير مسار فيه .. تعيين سيمنحك تاريخًا حتى بعد تعيين المسار.

    طريقة الاستخدام: يجب تمرير القيمة إلى ذلك.

    على سبيل المثال: location.assign("http://google.com")

     Enter image description here

  2. location.href

    يمكن تعريف إعطاء مسار في ذلك ... وسيتم إعادة توجيه إلى مسار معين بمجرد الإعداد ، وسوف يحتفظ التاريخ ...

    طريقة الاستخدام: يجب تعيين قيمة لها.

    على سبيل المثال: location.href = "http://google.com"

  3. location.replace ():

    سيساعد ذلك على استبدال المسار إذا كنت لا تريد الاحتفاظ بالسجل. لن يمنحك تاريخًا بمجرد استبدال المسار.

    طريقة الاستخدام: يجب تمرير القيمة إلى ذلك.

    على سبيل المثال: location.replace("http://google.com")

     Enter image description here


assign() و href متشابهان ، وكلاهما يمكنه الاحتفاظ بسجل. assign سيعمل بتمرير قيمة ويعمل href عن طريق التعيين.

يمكنك تحقيق ذلك باستخدام جافا سكريبت نفسها دون استخدام jQuery عن طريق تعيين ،

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

يمكنك تحقيق شيء مماثل باستخدام jQuery مثل أدناه. سوف تفعل نفس الشيء كما هو مذكور أعلاه ،

$(window).attr('location', "http://www.google.com");
$(location).attr('href', "http://www.google.com");

يمكنك بسهولة فهم الفرق بين الاثنين ...

هنا هو كائن الموقع ،

 Location API from chrome

10
Silent Spectator

إذا كنت ترغب في إعادة التوجيه إلى مسار داخل نفس التطبيق ببساطة

window.location.pathname = '/examplepath'

سيكون الطريق للذهاب.

9
RuNpiXelruN

سيؤدي استخدام location.replace() إلى إعادة توجيهك ولكن دون حفظ محفوظات الصفحة السابقة. هذا أفضل للاستخدام عند تقديم نموذج. ولكن عندما تريد الاحتفاظ بسجلك ، عليك استخدام location.href=//path

أمثلة:

// form with steps
document.getElementById('#next').onclick = function() {
   window.location.href='/step2' // iteration of steps;
}

// go to next step
document.getElementById("#back').onclick = function() {
   window.history.back();
}

// finish 
document.getElementById("#finish').onclick = function() {
   window.location.href = '/success';
}

// on success page
window.onload = function() {
    setTimeout(function() {
       window.location.replace('/home'); // i can't go back to success page by pressing the back button
    },3000);
}
8
Andrei Todorut

كل طريقة لإجراء إعادة توجيه من جانب العميل:

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and jQuery example to redirect a page or URL </title>
    </head>
    <body>
        <div id="redirect">
            <h2>Redirecting to another page</h2>
        </div>

        <script src="scripts/jquery-1.6.2.min.js"></script>
        <script>
            // JavaScript code to redirect a URL
            window.location.replace("http://stackoverflow.com");
            // window.location.replace('http://code.shouttoday.com');

            // Another way to redirect page using JavaScript

            // window.location.assign('http://code.shouttoday.com');
            // window.location.href = 'http://code.shouttoday.com';
            // document.location.href = '/relativePath';

            //jQuery code to redirect a page or URL
            $(document).ready(function(){
                //var url = "http://code.shouttoday.com";
                //$(location).attr('href',url);
                // $(window).attr('location',url)
                //$(location).prop('href', url)
            });
        </script>
    </body>
</html>
8
Zigri2612

إعادة توجيه المستخدم باستخدام jQuery/JavaScript

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

في jQuery

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

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

في JavaScript

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

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

أو

var url = 'http://www.example.com';
window.location = url;
6
devst3r

هذه هي الطريقة التي استخدمها.

   window.location.replace('yourPage.aspx');   
   // If you're on root and redirection page is also on the root

   window.location.replace(window.location.Host + '/subDirectory/yourPage.aspx');

   // If you're in sub directory and redirection page is also in some other sub directory.
5
dnxit

في تجربة عملي ، يعد JavaScript أفضل بكثير لإعادة التوجيه.

يعتمد ذلك على الطريقة التي تريد بها تغيير الموقع. إذا كنت ترغب في تسجيل موقع الويب الخاص بك في سجل المستخدمين ، فاستخدم window.location.href='ur website';. خلاف ذلك للقيام بذلك دون تسجيل الدخول في السجل ، استخدم window.location.replace("your website");.

4
Omkaar.K