使用 Firebug 调试基本 URL 元素

发布于 2024-07-21 16:50:40 字数 449 浏览 5 评论 0原文

我使用 JS 将 base URL 标记添加到文档头,因此相对链接页面工作。 但它没有生效,Firebug(Firefox 调试插件)显示 ; 元素变灰..为什么? 这是否意味着 Firefox 无法理解它或者语法不正确?

图片 http://www.freeimagehosting.net/uploads/a3122c1ddd.png

I'm adding the base URL tag to the document head using JS, so the relative links on the page work. But it does not take effect, and Firebug (debugging addon for Firefox) shows the <BASE /> element greyed out.. why? Does this mean Firefox cannot understand it or the syntax is incorrect?

Image http://www.freeimagehosting.net/uploads/a3122c1ddd.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜心小果奶 2024-07-28 16:50:43

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 中工作

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

the base tag has two components href and target. Yours seems to be fine. coold you give some example of the links on which it is failing?

see http://ashita.org/StackOverflow/base_test.html for a demonstration. (my test)

Edit: see comments

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

Tested and working in firefox

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文