سؤال

أقوم بإنشاء مكتبة JS تتطلب النظر في قيم النموذج [الإجراء] و[href] وحلها في عناوين URL مطلقة.

على سبيل المثال، أنا على http://a/b/c/d;p?q وتواجه قيمة href لـ "../g" (بافتراض عدم وجود عنصر <base>).المطلق الناتج سيكون: http://أ/ب/ز.

هل هناك مكتبة JS تقوم بذلك بالفعل؟يجب أن أصدق ذلك.

لمزيد من المعلومات حول ما هو مطلوب، المواصفات:http://tools.ietf.org/html/rfc3986#section-5.4

هل كانت مفيدة؟

المحلول

وتبين أن .href سمة عنصر (وليس .getAttribute('href'), ، لكن .href) تقوم بإرجاع عنوان URL (المطلق) الذي تم حله.

نصائح أخرى

في المتصفحات الحديثة، يعالج مُنشئ عنوان URL المدمج ما يلي:

u = (new URL("?newSearch",
             "http://a.example/with/a/long/path.file?search#fragment")).href

(عائدات http://a.example/with/a/long/path.file?newSearch)

إذا كنت تريد أن تكون القاعدة مرتبطة بالمستند الحالي، فيمكنك القيام بذلك بشكل صريح:

u = (new URL("?newSearch", document.location)).href

ال URL يمنحك الكائن أيضًا إمكانية الوصول إلى كافة مكونات عنوان URL (البروتوكول، والمضيف، والمسار، والبحث، والتجزئة، وما إلى ذلك).

حل JS نقي لطيف يعمل بدون DOM: https://Gist.github.com/1088850 (يعمل في كل مكان ولكنه مفيد بشكل خاص لـ JS من جانب الخادم).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top