0

このjsfiddleを見てください。

私はそれをスタックフロー専用に開発しました..今、私はそれに少し問題があります。

リダイレクトされる最終的な URL が?または& で構成されている場合は、 の代わりにaddQueryString, addQueryString1 を使用する必要があります。誰か助けてください。

Rohit と Tim に申し訳ありません。そこにあるコードを直接見た方が簡単だと思いました。しかし、ここに私のコードがあります:

   // 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);   
        }       
    }
​

ウェブページにあるアフィリエイト リンクをアフィリエイト URL にリダイレクトし、ユーザーが投稿したリンクからコミッションを得るコードです。私のコードでは、gog.com のリンクはすべて http://example.com/lnkurl=http://www.gog.com/%3Futm_source%3Dtyroo%26utm_medium%3Daffiliate%26utm_campaign%3D12june12_20percenteossofferとしてリダイレクトされます。

リンクが ex の場合、gog.com/test?price=xyz の場合、リンク自体に ? が含まれていることがわかります。と = その中に。したがって、私のスクリプトに従ってリダイレクトされた URL は次のようになります

これは機能しません。私がやりたいのは、URLに何かが含まれている場合です。その中の & または = の場合、addQueryString .. の代わりに addQueryString1 を使用する必要があります。または & もエンコードする必要があります。

できれば助けてください..ありがとう

4

1 に答える 1

0

私はあなたがjavascriptソリューションを探していると思います。もしそうなら、あなたはこれに従うことができます

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

&も同じ

于 2012-11-07T07:00:46.830 に答える