2016-11-03 20 views
0

私たちはshopifyストアでいくつかの問題があります。私たちは手作業で_ga paramteterをcheckout.shopify.comに送信します。私はこのコード行をonclickに追加することで、他のストアでこれを修正する経験があります。onclickイベントをJquery経由で作成する方法

$html += "<a href=\"/checkout\" onclick=\"ga(function (tracker) {var linkerParam = tracker.get('linkerParam'); document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';}); document.getElementById('cartform').submit();\" class=\"btn btn-1 btn-block big\">{{ 'general.cart_info.checkout' | t }}</a>"; 

しかし、このWebサイトでは動作しません。これは、今どのように見えるかです:

jQuery('<div class="action"><button class="btn btn-default" onclick="window.location=\'/checkout\'">{{ 'general.header.cart_info.checkout' | t }}</button></div>').appendTo(cart_summary); 

は、これは私が作るしようとしていたものです。すべてこの方法では

$(document).ready(function() { 

    $("a#checkout-link").each(function() { 
     var text = $(this).text(); 
     var thisEvent = $(this).attr("onclick"); // grab the original onclick event 
     $(this).click(function(event) { // when someone clicks these links 
      event.preventDefault(); // don't open the link yet 
      ga(function (tracker) {var linkerParam = tracker.get('linkerParam'); 
      document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';}); 
      document.getElementById('cartform').submit(); 
      setTimeout(function() { // now wait 300 milliseconds... 
       eval(thisEvent); // ... and continue with the onclick event 
      },300); 
     }); 
    }); 

}); 

jQuery('<div class="action"><a href="/checkout\" id="checkout-link" class="btn btn-default" onclick=\"ga(function (tracker) {var linkerParam = tracker.get('linkerParam'); document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';}); document.getElementById('cartform').submit();\">{{ 'general.header.cart_info.checkout' | t }}</button></div>').appendTo(cart_summary); 

はまた、私はこれにしようとしてましたこれは機能しません。私はコード内のnoobだと知っていますが、多分誰かが私を助けることができますか?

答えて

0

ページがリダイレクトされる前にそのga関数を実行しますか?あなたが何をしたいのかないという簡単な関数を作成しようとした場合:次に

function saveLinkerParam(){ 
ga(function (tracker) {var linkerParam = tracker.get('linkerParam'); document.cookie = '_shopify_ga=' + linkerParam + '; ' + 'path=/';}); 
} 

をすでに存在しているのonclickハンドラでそれを実行する(ちょうどbofore window.locationのは、変更された:

jQuery('<div class="action"><button class="btn btn-default" onclick="saveLinkerParam();window.location=\'/checkout\' + ">{{ 'general.header.cart_info.checkout' | t }}</button></div>').appendTo(cart_summary); 

(あなたドン新しい関数saveLinkerParamを作成する必要がありますが、コードを少し読みやすくすると思います)

実際にこのコードを実行しようとしていないので、構文エラーが発生した場合は教えてください。しようとしたコードは、構文である可能性があります。 jQuery関数でテキストと変数を連結します。

+0

ありがとうございます!これは私のために働く! –

関連する問題