2012-10-14 31 views
1

这个问题是类似(但具有不同的扭转)至Replace http:// in anchor portion of links using Jquery替换倍数链路的硬编码的锚定部分

我的目标是拿出的最佳解决方案,以取代绝对路径/实现一相对路径网站,也许是使用脚本技术(jQuery的或JsRender)或其他相关技术

有: - 许多不同的硬编码服务器名称或IP地址(甚至超过10)中的每一个 页面中存在 - 在1000+ .htm,.html页面按摩

您的思绪之中,欢迎

AgileQ

+2

你可能想要做serverside,而不是客户端JS?你是否只想将它们转换一次,或者是否想为每个不同的请求替换协议? – Bergi

+0

让我进一步阐述。页面中的链接类似于 AgileQ

回答

0

以下是我会煮一个jQuery的解决方案(以及短的如何!):

$('a[href^="http"]').click(function(event){ 
    event.preventDefault();  
    var matches = $(this).attr('href').match(/http(s?):\/\/[^\/]+(\/.*)$/); 
    window.location = matches[2]; 
}); 

注:我没有测试过这一点,并有可能是我的正则表达式模式存在缺陷。 (我从来没有第一次得到它们,但我目前无法测试它)

但重点是抓住点击指定的http &域名的链接,然后使用JavaScript的.match()在点击链接的href上,为表示路径的href部分提供子匹配。然后重定向到那个。我会在正则表达式中使用积极的背后,但JavaScript不支持。

更新我刚刚在这里测试了正则表达式http://jsfiddle.net/2wmaM/,它似乎工作。

+0

让我试试看。 – AgileQ

+0

好的。我得到了/世界。没关系。然而,我必须重复几次ex:http://10.4.22.9/world的更改为由某个数组提供的另一个IP。不知道我想要那样做。如果我有一个包含服务器名称数组的js文件,并且在一个href中有一个可以引用它的变量,那么该怎么办?例如:servernameA =“http://10.5.22.44:82”,链接中的变量会通过使用在页面加载时执行的脚本动态替换它? – AgileQ

+0

然后,我只需要每页调用一次脚本,循环在所有链接上进行字符串插值(并非都是相同的url) – AgileQ