Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更换多路链路的硬编码锚定部分_Javascript_Html_Iis 7 - Fatal编程技术网

Javascript 更换多路链路的硬编码锚定部分

Javascript 更换多路链路的硬编码锚定部分,javascript,html,iis-7,Javascript,Html,Iis 7,这个问题类似于(但有一个不同的转折点) 我的目标是找到一个最佳的解决方案来替换网站中的绝对路径/实现相对路径,可以使用脚本技术(jQuery或JsRender)或其他相关技术 有: -每个页面中可能存在许多不同的硬编码服务器名称或IP(甚至超过10个) -要按摩的网页超过1000+.htm、.html 欢迎您的想法(以及简短的操作方法!) AgileQ以下是我制作jQuery解决方案的方法: $('a[href^="http"]').click(function(event){ even

这个问题类似于(但有一个不同的转折点)

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

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

欢迎您的想法(以及简短的操作方法!)


AgileQ

以下是我制作jQuery解决方案的方法:

$('a[href^="http"]').click(function(event){
    event.preventDefault();      
    var matches = $(this).attr('href').match(/http(s?):\/\/[^\/]+(\/.*)$/);
    window.location = matches[2];
});
注意:我还没有测试这个,我的正则表达式模式中可能有一个缺陷。(我从来没有第一次把它们弄对过,但目前我还无法测试这一点)

但关键是在指定了http&domain的链接上捕获点击,然后在点击链接的href上使用javascript的.match(),为href中表示路径的部分提供子匹配。然后重定向到那个。我本来会在正则表达式中使用积极的外观,但JavaScript不支持这一点


更新我刚刚在这里测试了正则表达式,它似乎可以工作。

您可能想在服务器端完成它,而不是在客户端JS中?您想只转换一次,还是要为每个不同的请求替换协议?让我进一步描述。页面中的链接与Ok类似。我确实了解世界。那很好。然而,我必须重复几次对ex:的更改,将其更改为某个阵列提供的另一个IP。我不确定我是否想那样做。如果我有一个包含服务器名称数组的.js文件,并且在a href中有一个引用它的变量,怎么样?例如:servernameA=“”,链接中的变量将使用页面加载时执行的脚本动态替换它?然后我只需要每页调用一次脚本,循环在所有链接上执行字符串插值(不是所有相同的url)@Agileot我当然理解——表达式将处理指定了协议和域的任何链接,而不管该链接上是哪个域。当然,如果你有合法的外部链接,你不想被重写,这可能会有问题。