سؤال

انا إضافة قاعدة URL العلامة الوثيقة الرأس باستخدام JS, حتى الروابط النسبية على صفحة العمل.لكنها لا تصبح نافذة المفعول ، الحرائق (التصحيح الملحق فايرفوكس) يظهر <BASE /> عنصر الرمادي..لماذا ؟ هل هذا يعني أن فايرفوكس لا يمكن فهمه أو بناء جملة غير صحيح ؟

صورة http://www.freeimagehosting.net/uploads/a3122c1ddd.png

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

المحلول

http://www.w3schools.com/TAGS/tag_base.asp

قاعدة الوسم عنصرين href المستهدفة.لك يبدو أن يكون على ما يرام.coold يمكنك إعطاء بعض الأمثلة على الروابط التي فشلت ؟

انظر http://ashita.org/StackOverflow/base_test.html عن مظاهرة.(اختباري)

تحرير:انظر التعليقات

function addBase(url) {
    var regex = /^(https?|ftp):\/\//;

    var a = Array.prototype.slice.call(document.getElementsByTagName('a'),0);
    var link = Array.prototype.slice.call(document.getElementsByTagName('link'),0);
    var script = Array.prototype.slice.call(document.getElementsByTagName('script'),0);
    var img = Array.prototype.slice.call(document.getElementsByTagName('img'),0);

    var hrefs = a.concat(link);
    var srcs = img.concat(script);

    var element,href,src;
    for (var i=0,len=hrefs.length;i<len;++i) {
        element = hrefs[i];
        href = element.getAttribute("href");
        if (href) {
            if (!regex.test(href)) {
                href = (url + "/" + href).replace("//","/"); //to handle double slash     collision
                element.setAttribute("href",href);
            }
        }
    }
    for (var i=0,len=srcs.length;i<len;++i) {
        element = srcs[i];
        src = element.getAttribute("src");
        if (src) {
            if (!regex.test(src)) {
                src = (url + "/" + src).replace("//","/"); //to handle double slash     collision
                element.setAttribute("src",src);
            }
        }
    }
}

اختبارها و تعمل في فايرفوكس

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