首页 > 解决方案 > 如何使用双斜杠(//)捕获/检查所有 URL 并更正它们(JQuery?)

问题描述

目前我们有一个大问题(暂时)!在我们的商店中,我们使用第三方解决方案来推广和搜索产品。我们有大约 3600 种产品以错误的方式收获 - 基本 URL 有一个额外的正斜杠 ( www.sceneryworkshop.nl// ),所以现在所有产品都被称为错误的方式并最终出现在 nomansland。我们开始了新的数据同步,但同步需要很长时间。

所以我正在寻找一个临时的解决方案,即使它很脏!我无权访问 .htaccess 或其他服务器组件。该商店在基于 TWIG 的闭源平台(Lightspeed HQ)上运行。

任何知道如何更改或重定向到正确网址的人?也许是Javascript?源被定位并从很多地方调用,所以唯一的解决方案是检查和更正 url 的全局函数。

我真的希望有人能回答我:-)

标签: javascriptjquery

解决方案


嗨,我有一个解决方案,假设在渲染 dom 后加载 jquery

$(document).ready(function() { 
  $('a').each(function() {
    $split = $(this).attr('href').split('com//');
    $(this).attr('href', $split[0] + 'com/' + $split[1]);
    console.log($(this).attr('href'));
  })
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<a href="https://www.google.com//search?q=Jquery" target="_blank">Jquery</a>
<a href="https://www.google.com//search?q=Java" target="_blank">Java</a>
<a href="https://www.google.com//search?q=J" target="_blank">J</a>
注意: 如果你喜欢测试截图中的链接;按住 ctrl 并单击链接。

更新 好。我已经阅读了您的评论,并从您的网站在检查员中尝试了一些东西。以下解决方案有效!

$('body a[href^="https://www.google.com//"]').each(function() {
    $x = $(this).attr('href').replace('com//', 'com/');
    $(this).attr('href', $x)
    console.log($x);
  })
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<a href="https://www.google.com//search?q=Jquery" target="_blank">Jquery</a>
<a href="https://www.google.com//search?q=Java" target="_blank">Java</a>
<a href="https://www.google.com//search?q=J" target="_blank">J</a>

我在这里做的很简单,首先我搜索每个包含以下 url 的元素:https ://www.sceneryworkshop.nl// 。然后用正确的网址替换它们。


推荐阅读