如何使用 Ajax 根据网页内容生成 URL?

How can I generate URLs using Ajax based on webpage content?

提问人:tmc_dev 提问时间:6/9/2023 最后编辑:tmc_dev 更新时间:6/9/2023 访问量:32

问:

我正在尝试构建将出现在电子商务网站的每个产品页面上的切换按钮。这些按钮将在与每个产品的“男士”和“女士”版本相关的页面之间来回切换。

$(function() {
    if ( document.location.href.indexOf('womens') > -1 ) {
        $('a.gender-toggle-women').attr("href", $(location).attr('href'));
        $('a.gender-toggle-men').attr("href", $(location).attr('href').replace('womens','mens'));
    }
   else {
  $('a.gender-toggle-men').attr("href", $(location).attr('href'));
  $('a.gender-toggle-women').attr("href", $(location).attr('href').replace('mens','womens'));
   }
});

我想使用上面这样的脚本在用户单击切换按钮时将用户重定向到新页面,但它不起作用,因为 url 路径略有不同。

例:

/shop/womens-running-shoe-sku1?variationId=333

/shop/mens-running-shoe-sku2?variationId=444

因此,我想使用 Ajax(或 Fetch?)根据产品页面上列出的产品标题生成 URL。

如果我这样做

var product = $("h1.product-content-info-name.product-info-js").attr("data-catentry-name-dl");

var prodTransform = product.split(" ").join("-").toLowerCase().replace(/'/g, '');

并将“Men's Running Shoe”转换为“mens-running-shoe”以使其与页面url的格式匹配,我可以使用Ajax(或Fetch?)返回整个关联的url或html文件路径吗?

我知道这似乎是一种奇怪的迂回方式,但我是通过 a/b 测试平台创建此切换开关的,所以我无法直接访问网站的后端,我必须做所有事情客户端。我也不想浪费时间为每个产品页面创建不同版本的 a/b 测试,并且必须手动输入每个页面的 url。

总的来说,我对开发和编码也很陌生,我主要是通过反复试验来学习的。因此,如果我似乎遗漏了一些相当明显的东西,请告诉我。

我一直在到处寻找资源来帮助我做我想做的事情,但我找不到任何超级有用的东西。

jQuery ajax xmlhttprequest fetch 动态生成

评论

0赞 jcubic 6/10/2023
我不确定我是否理解您想做什么,但您不能使用 Fetch 获取 URL。Fetch 用于获取特定页面,因此如果您没有特定页面,则无法从中获取 URL。除非你只想获取URL。如果是这种情况,那么你可以这样做,并使用$(html)和Ajax请求的响应,你可以使用jQuery遍历该HTML并获取完整的URL(如果它在链接上)。/shop/mens-running-shoe
0赞 tmc_dev 6/13/2023
@jcubic 是的,我只想获取页面!我会尽力按照你的建议去做。另外,作为参考,我试图在这里重新创建的一个例子:on-running.com/en-us/products/cloudswift-41/mens/......
0赞 jcubic 6/13/2023
对不起,我还是不明白你想做什么。
0赞 tmc_dev 6/14/2023
@jcubic我想创建一个切换开关,就像我发送的链接中的切换开关一样。但是我不知道如何在点击时生成网址。我链接的网站使用 Apollo Link 的 CreateHTTPLink,但我不能这样做,因为我需要一个客户端解决方案
0赞 jcubic 6/14/2023
但是这个URL是从哪里来的呢?

答: 暂无答案