0

请看这个jsfiddle。

我已经为堆栈流开发了它。现在我只是有一点问题。

如果将被重定向的最终 url 包含?or & ,那么 应该使用 , 而不是 .. 任何人都可以帮忙addQueryStringaddQueryString1

对不起罗希特和蒂姆。我认为如果您直接在那里查看代码会更容易。但这是我的代码:

   // Plain Javascript

    var links = document.getElementsByTagName('a');

    for (var i = 0, max = links.length; i < max; i++) {
        var _href = links[i].href;
        var addQueryString = "?utm_source=tyroo&utm_medium=affiliate&utm_campaign=12june12_20percenteossoffer";
        var addQueryString1 = "&utm_source=tyroo&utm_medium=affiliate&utm_campaign=12june12_20percenteossoffer";

        if (_href.indexOf('gog.com') !== -1) {
            links[i].href = 'http://example.com/lnkurl=' + _href + encodeURIComponent(addQueryString);   
        }       
    }
​

它是用于通过会员网址重定向网页中的会员链接的代码,以便我们从用户发布的链接中赚取佣金。在我的代码中,gog.com 的任何链接都将被重定向为 http://example.com/lnkurl=http://www.gog.com/%3Futm_source%3Dtyroo%26utm_medium%3Daffiliate%26utm_campaign%3D12june12_20percenteossoffer

现在我问你,如果链接是前的,gog.com/test?price=xyz 现在你看到链接本身包含一个?和 = 在里面。因此,根据我的脚本重定向的网址将变为: http ://example.com/lnkurl=http://www.gog.com/test?price=xyz%3Futm_source%3Dtyroo%26utm_medium%3Daffiliate%26utm_campaign%3D12june12_20percenteossoffer

这是行不通的。我想要做的是,如果 url 包含任何?或 & 或 = ,那么它应该使用 addQueryString1 而不是 addQueryString .. 并且如果可能的话,url中的内容从 ? 或 & 也应该被编码..

如果你能的话,请帮忙..谢谢

4

1 回答 1

0

我认为您正在寻找一个 javascript 解决方案。如果是这样,你可以按照这个

if(url.indexOf("?") != -1)
{
  //? is present
} else    {
     //? is not present
}

与 & 相同

于 2012-11-07T07:00:46.830 回答