添加Google Analytics ga功能时,Javascript会中断

时间:2016-07-22 23:58:50

标签: javascript google-analytics

我一直试图让这段代码起作用:

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 + '\')');

}

但是当它到达分析变量时会中断,因为它有带撇号的参数。在检查员中我收到:

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

我怎样仍然可以使用&#39;发送&#39;就像谷歌分析一旦达到第一个ga参数就要求没有脚本中断。先谢谢你。

2 个答案:

答案 0 :(得分:0)

使用这样的反弹来逃避你的字符串:

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

它应该有效,这些可能会有所帮助:Escape strings in javascript

答案 1 :(得分:0)

试试这个:

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

或者您可以尝试使用ES6:

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