2016-07-22 9 views
0

Ich habe diesen Code zu bekommen versucht, zu arbeiten:Javascript brechen beim Hinzufügen von Google Analytics ga Funktion

if(searchResults != null){ 
    for(var i=0; i < searchResults.length; i++){ 
     var file = nlapiLoadFile(searchResults[i].getValue('custrecord_download_file')); 
     var result = searchResults[i].getText('custrecord_download_name'); 
     var analytics = "onclick=\"ga(\'send\',\'event\','" + result + "');\""; 
     ulText += '<li><a href="'+ file.getURL() + '" target="_blank" ' + analytics + ' >' + searchResults[i].getText('custrecord_download_name') + '</a></li>'; 
    } 
} 

ulText += '</ul>'; 
response.write('document.write(\'' + ulText + '\')'); 

}

Aber es bricht, wenn es die Analysevariable erreicht, da es Parameter mit Apostroph hat. Im Inspektoren erhalte ich:

document.write('<ul><li><a href="/core/media/media.nl?id=339181&c=685553&h=20e8a29160195ea985c6&_xt=.pdf" target="_blank" onclick="ga('send','event','Product Datasheet')" >Product Datasheet</a></li></ul>') 

Wie kann ich immer noch die ga-Funktion erhält die Arbeit mit ‚Senden‘ wie Google Analytics für fragt, ohne das Skript zu brechen, sobald sie die ersten ga Parameter erreicht. Danke im Voraus.

+0

Wenn du die strings send und event senden willst, probiere '\\\ 'send \\\', \\\ event \\\ ','' "+ result +" ' –

Antwort

0

Ihre Schnur mit Spiel wie diesem entkommen:

document.write('<ul><li><a href="/core/media/media.nl?id=339181&c=685553&h=20e8a29160195ea985c6&_xt=.pdf" target="_blank" onclick="ga(\'send\',\'event\',\'Product Datasheet\')">Product Datasheet</a></li></ul>') 

Es sollte funktionieren, und diese ein hilfreich sein könnten:

var analytics = "onclick=\"ga(\'send\',\'event\',\'" + result + "\');\""; 

Oder könnten Sie versuchen, in ES6: Escape strings in javascript

+0

Hey Rocky, das habe ich eigentlich gemacht Das hat kein Glück, da es immer noch genau so schreibt. Danke für die Hilfe. – TragicWhale

0

Try this :

const analytics = `onclick=\"ga(\'send\',\'event\',\'${result}\');\"`; 
+0

Hm, ich habe es gerade ausprobiert, komme aber immer noch genauso zurück. Es sieht wie folgt aus (https://i.sli.mg/NKvwuC.png). Ich schätze die Hilfe jedoch. – TragicWhale

+0

Hast du versucht es inline zu machen? 'ulText + = '

  • daymosik