【问题标题】:Replace hard-coded anchor portion of multiples link替换多重链接的硬编码锚部分
【发布时间】:2012-10-15 01:49:11
【问题描述】:

这个问题与Replace http:// in anchor portion of links using Jquery 类似(但有不同的转折)

我的目标是提出一个最佳解决方案来替换绝对路径/在网站中实现相对路径,可能使用脚本技术(jQuery 或 JsRender)或其他相关技术

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

欢迎您提出建议(以及简短的操作方法!)

AgileQ

【问题讨论】:

标签: javascript html iis-7


【解决方案1】:

以下是我如何编写 jQuery 解决方案:

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

注意:我没有对此进行测试,我的正则表达式模式可能存在缺陷。 (我从来没有第一次把它们弄好,但我目前无法测试)

但关键是要捕获对指定 http 和域的链接的点击,然后在单击的链接的 href 上使用 javascript 的 .match(),为表示路径的 href 部分提供子匹配。然后重定向到那个。我会在正则表达式中使用正面的外观,但 JavaScript 不支持。

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

【讨论】:

  • 好的。我确实得到了/世界。没关系。然而,我必须重复几次更改例如:10.4.22.9/world 到另一个将由某个阵列提供的 IP。不确定我想这样做。如果我有一个包含服务器名称数组的 .js 文件,并且在 a href 中有一个变量来引用它,那又如何呢?例如:servernameA = "10.5.22.44:82" 并且链接中的变量将通过使用在页面加载时执行的脚本来动态替换它?
  • 然后我只需要每页调用一次脚本,循环对所有链接进行字符串插值(不是所有相同的url)
  • @Agileot 我明白了——该表达式将处理具有指定协议和域的 any 链接,无论该链接上的哪个域。如果您有不想被重写的合法外部链接,那当然可能会有问题。
猜你喜欢
  • 2010-10-12
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
  • 2019-02-25
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2022-11-26
相关资源
最近更新 更多