مكتبة كيفية تغيير الصفحة من داخل JavaScript




تحميل مكتبة jquery (4)

document.location.href = newUrl;

https://developer.mozilla.org/en-US/docs/Web/API/document.location

لديّ الكود التالي الذي يقوم بتغيير الصفحات من داخل JavaScript:

var newUrl = [some code to build up URL string];
window.location.replace(newUrl);

ولكنه لا يغير عنوان URL العلوي ، لذلك عندما ينقر شخص ما على زر الرجوع ، لا يعود إلى الصفحة السابقة.

كيف يمكنني تغيير جافا سكريبت لأعلى عنوان URL أيضًا حتى يعمل زر الرجوع للخلف.


حسنًا ، سأستخدم

window.location = 'http://localhost/index.html#?options=go_here';

لست متأكدًا تمامًا مما إذا كنت تقصد ذلك.


إذا كنت تريد فقط تحديث المسار النسبي يمكنك القيام به

window.location.pathname = '/relative-link'

"http://domain.com" -> "http://domain.com/relative-link"


يجب أن يكون window.location.href البسيط لـ window.location أو window.location.href على ما يرام:

window.location = newUrl;

ومع ذلك ، سيتسبب عنوان URL الجديد في تحميل المتصفح للصفحة الجديدة ، ولكن يبدو أنك تريد تعديل عنوان URL دون مغادرة الصفحة الحالية. لديك خياران لهذا:

  1. استخدم تجزئة عنوان URL. على سبيل المثال ، يمكنك الانتقال من example.com إلى example.com#foo بدون تحميل صفحة جديدة. يمكنك ببساطة تعيين window.location.hash لجعل هذا سهلا. بعد ذلك ، يجب أن تستمع إلى حدث hashchange HTML5 ، الذي سيتم تشغيله عندما يضغط المستخدم على زر الرجوع. هذا غير مدعوم في الإصدارات الأقدم من IE ، ولكن تحقق من jQuery BBQ ، مما يجعل هذا العمل في جميع المتصفحات.

  2. يمكنك استخدام سجل HTML5 لتعديل المسار دون إعادة تحميل الصفحة. سيسمح لك هذا بالتغيير من example.com/foo إلى example.com/bar . استخدام هذا سهل:

    window.history.pushState("example.com/foo");

    عندما يقوم المستخدم بالضغط على "back" ، سوف تتلقى حدث popstate الخاص popstate ، والذي يمكنك بسهولة الاستماع إليه (jQuery):

    $(window).bind("popstate", function(e) { alert("location changed"); });

    للأسف ، لا يتم دعم ذلك إلا في المتصفحات الحديثة جدًا ، مثل Chrome و Safari و Firefox 4 beta.





jquery