0

我刚刚创建了一个脚本,它通过服务器端 JS 从网页中提取文章。(如果您有兴趣:它用于http://pipes.yahoo.com/fb55/expandr。)

我只是在内部链接方面遇到了一点问题。某些页面包含以下链接:

/subfolder/subpage.html

我需要做的是修复它们并在那里设置根,如下所示:

protocol://secondlevel.firstlevel/subfolder/subpage.html

我正在使用 E4X 来处理页面。我不想展示我目前令人毛骨悚然的尝试,它有问题而且很慢。有人对我有解决方案吗?

4

1 回答 1

1

您可以使用一些正则表达式重写它们:

var baseUrl = "http://somesite.com/somepage"
var root = baseUrl.match(/^[^:]+:\/\/[^\/]+\//)[0];
// "http://somesite.com/"

var HTML = "<a href='/testing'>test</a> and <a class='test' href=\"/foo/bar\"> </a>";

HTML.replace(/<a [^>]*href=["']\/([^'"]+)["']/ig, function (whole, url) {
  return whole.replace("/"+url, root+url);
});

// "<a href='http://somesite.com/testing'>test</a> and <a class='test' href=\"http://somesite.com/foo/bar\"> </a>"
于 2010-05-30T12:01:02.280 回答