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


Answers

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

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

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




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

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

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

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

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

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

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

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

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




إكماسكريبت 6 + جكري، 85 بايت

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

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

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

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

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

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

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

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

أساسا، كرينج.




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

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

و...

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

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

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




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

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



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

window.location = window.location.host

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

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




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

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

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







استعمال:

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



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

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

فمن السهل!

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




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

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

<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://.com

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

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

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

تصحيح:

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

مثال:

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

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

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

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

مع

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



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

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

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

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

$(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.href = "/destination.html";

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

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

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

function redirect () {
    $('selection').animate({
        marginLeft: 100px; //Put some CSS animation here
    }, 500, function () {
      // OK, finished jQuery staff, let's go redirect
      window.location.href = "/destination.html";
})

تخيل شخص كتب السيناريو / البرنامج المساعد الذي هو 10000 خطوط من التعليمات البرمجية؟! حسنا، مع مسج يمكنك الاتصال إلى هذا الرمز مع مجرد خط أو اثنين.




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

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



var url = 'asdf.html';
window.location.href = url;