문제

나는 기본 URL JS를 사용하여 문서 헤드에 태그를 추가하면 페이지의 상대 링크가 작동합니다.하지만 효과는 없고, 개똥 벌레 (Firefox용 디버깅 애드온)은 다음을 보여줍니다. <BASE /> 요소가 회색으로 표시되었습니다..왜?이는 Firefox가 이를 이해할 수 없거나 구문이 올바르지 않음을 의미합니까?

이미지 http://www.freeimagehosting.net/uploads/a3122c1ddd.png

도움이 되었습니까?

해결책

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

기본 태그에는 href와 target의 두 가지 구성 요소가 있습니다.당신의 것은 괜찮은 것 같습니다.실패한 링크에 대한 몇 가지 예를 들어주실 수 있나요?

보다 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);
            }
        }
    }
}

Firefox에서 테스트하고 작업 중입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top