Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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 使用JS将HTML中检测到的链接替换为其他链接_Javascript - Fatal编程技术网

Javascript 使用JS将HTML中检测到的链接替换为其他链接

Javascript 使用JS将HTML中检测到的链接替换为其他链接,javascript,Javascript,我在想怎么做这件事上有点困难 下面是一个场景。我的电子商务网站有一个包含很多内容的博客,推广我销售的产品,评论它们等等。博客上99%的帖子都链接到他们谈论的产品 我将更改我的电子商务系统所在的URL。因此,我的博客最终将发送大量404页的用户 我的想法是能够在加载时包含一个JS文件,扫描文档中的现有链接,然后,如果找到,用现在正确的链接替换掉它们 我希望这是有意义的 干杯, 吉姆 这在jQuery中非常简单;但这在多个层面上都是个坏主意。首先,正如伊兹瓦蒂所说,禁用JavaScript的用户仍将

我在想怎么做这件事上有点困难

下面是一个场景。我的电子商务网站有一个包含很多内容的博客,推广我销售的产品,评论它们等等。博客上99%的帖子都链接到他们谈论的产品

我将更改我的电子商务系统所在的URL。因此,我的博客最终将发送大量404页的用户

我的想法是能够在加载时包含一个JS文件,扫描文档中的现有链接,然后,如果找到,用现在正确的链接替换掉它们

我希望这是有意义的

干杯, 吉姆


这在jQuery中非常简单;但这在多个层面上都是个坏主意。首先,正如伊兹瓦蒂所说,禁用JavaScript的用户仍将获得404


另一个原因是,像谷歌机器人这样的网络蜘蛛不执行JavaScript,所以他们会看到404也会破坏你的搜索引擎优化;将内容迁移到新URL时,如果您对保留搜索排名感兴趣,您应该301重定向将旧URL永久移动到新位置。

如果您要创建要重定向的JavaScript,为什么不创建一个批处理过程来更新所有这些文件/链接呢


我假设这些是静态文本文件,如果它是数据库驱动的,那么也是可以实现的。

在您的博客页面中,将这段简单的代码粘贴在页面末尾的标记之前

<script type="text/javascript">
   var collection = document.getElementsByTagName('a'),
   old_url = "http://www.myoldurl.com", //place here you old url
   new_url = "http://www.mynewurl.com", //place here your new url
   i, len = collection.length;
   for(i = 0; i < len; ++i)
      if(collection[i].href)
         collection[i].href = collection[i].href.replace(old_url, new_url);
</script>

由于您使用的是博客,您只需将这段代码一次性粘贴到博客的布局/模板页面中,这样代码就会在标签之前插入到每个页面上。

这可能是个坏主意,因为很多时候,用户将禁用JavaScript。CTRL+F-replace with-我应该为此受到惩罚,但它可能只是做你需要的事情xD显然,在大量情况下会出错^^将旧链接重定向到服务器端的新URL是更好的方法。如果一切都在你的服务器端完成,你可以确保重定向正确进行,而不必担心Javascript是否在用户端运行。我喜欢你提出的网络蜘蛛和SEO。我根本没有想到这一点,对于一个营利网站来说,这是一个关键因素。
<script type="text/javascript">
   var collection = document.getElementsByTagName('a'),
   old_url = "http://www.myoldurl.com", //place here you old url
   new_url = "http://www.mynewurl.com", //place here your new url
   i, len = collection.length;
   for(i = 0; i < len; ++i)
      if(collection[i].href)
         collection[i].href = collection[i].href.replace(old_url, new_url);
</script>