2016-11-03 2 views
0

Wir haben ein paar Probleme mit unserem shopify Store: und wir möchten versuchen, _ga Parameter manuell an checkout.shopify.com senden. Ich habe Erfahrung, wo ich diese auf anderen Speicher zu beheben, indem zu Onclick dieser Codezeile:Wie onclick Ereignis funktioniert über 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>"; 

Aber mit dieser Website ist es nicht funktioniert. Dies ist, wie es jetzt aussieht:

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

Dies ist, was ich habe versucht zu machen: Ich habe versucht, diese

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); 

auch zu machen:

$(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); 
     }); 
    }); 

}); 

Mit all diesen Möglichkeiten das funktioniert nicht. Ich weiß, dass ich im Code noob bin, aber vielleicht kann mir jemand helfen?

Antwort

0

Also möchten Sie diese GA-Funktion ausführen, bevor die Seite umgeleitet wird? Wenn dies der Fall versuchen, eine einfache Funktion zu schaffen, das tut, was Sie tun möchten:

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

Dann führen Sie es in Onclick-Handler, der bereits vorhanden ist (nur ist bofore window.location geändert:

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); 

(Sie don 't muss eine neue Funktion saveLinkerParam erstellen, aber ich denke, es macht Code ein bisschen lesbarer)

Ich habe nicht versucht, diesen Code tatsächlich auszuführen, also lassen Sie mich wissen, wenn Sie einen Syntaxfehler bekommen. Btw Ich denke, das Problem mit Code, den Sie versucht haben, könnte Syntax sein, genauer gesagt, wenn Sie con sind Verketten des Textes und der Variablen in der jQuery-Funktion.

+0

Danke! Das funktioniert für mich! –

Verwandte Themen