【问题标题】:Difficulty constructing Absolute URL构建绝对 URL 的困难
【发布时间】:2015-11-02 22:09:30
【问题描述】:

www.baxter.com源页面,显示大部分以baxter开头的href链接,像这样-

href="/baxter/corporate.page?">About Baxter<

所以我可以从上面构造一个绝对 URL 的方法是结合基本 URL www.baxter.com 和相对 URL /baxter/corporate.page?给我 www.baxter.com/baxter/corporate.page? 导致 404,因为实际 URL 是 www.baxter.com/corporate.page? 我知道如何在 PHP 中解析相对 URL,但是有没有办法从这些相对 url 中感知和删除单词?

同样,鼠标悬停在www.baxter.com 网页上的About Baxter 上,在页面左下方显示正确的网址www.baxter.com/corporate.page? - 这是从哪里来的?可以访问吗?

将非常感谢任何帮助/指针...

11 月 7 日编辑:

在 main.js 中,他们正在删除 /baxter:

var fixer = function() {
var init = function() {
    var digitasFinder = /(proto)|(cms-)|(teamsite-)/
      , baxterFinder = /(\/baxter\/)/
      , $allAnchors = $("a")
      , $allForms = $("form");
    digitasFinder.test(location.host) || ($allAnchors.each(function() {
        var $this = $(this)
          , actualHref = $this.attr("href");
        if (baxterFinder.test(actualHref)) {
            var newHref = actualHref.replace(baxterFinder, "/");
            $this.attr("href", newHref)
        }
    }
    ),
    $allForms.each(function() {
        var $this = $(this)
          , actualAction = $this.attr("action");
        if (baxterFinder.test(actualAction)) {
            var newAction = actualAction.replace(baxterFinder, "/");
            $this.attr("action", newAction)
        }
    }
    ))
}
;
return {
    init: init
}

}

【问题讨论】:

    标签: javascript php html parsing url


    【解决方案1】:

    看起来在页面加载时执行的某些 JavaScript 正在修改链接的 hrefs。

    您可以尝试复制 JS 代码的效果(即,从链接中删除 '/baxter'),或者对于更通用的解决方案,您可以使用无头浏览器来执行 JS 代码,然后评估生成的 DOM。查看 the Mink project 以获取基于 PHP 的解决方案。

    【讨论】:

    • +1 你的权利。包含 .js 代码作为对我的 OP 的编辑,他们在其中删除了/baxter。有没有办法捕获浏览器的 Inspect Element 中显示的生成的或最终的 url??
    • 为了简化我的问题 - 有没有办法捕获修改后的hrefs?
    猜你喜欢
    • 2012-08-28
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    相关资源
    最近更新 更多