2012-11-26 38 views
1

我有一段代碼來做一些谷歌分析。它看起來像這樣:string .replace()手機上的Javascript功能不起作用

$(function() { 
    $('.plan-choose-btn a').bind('click', function(e) { 
     //ga load image 
     <% String myaccGAEventUrl = trackGoogleAnalyticsEvent(request, "MO-22651379-1", "calltoaction", "buy", "PLC_HOLDER"); %> 
     var action = '<%=myaccGAEventUrl%>'; 
     var hr = $(this).attr('href'); 
     var bundle = hr.split("id=")[1].split("&")[0]; 
     action = action.replace("PLC_HOLDER", bundle); 
     $('body').append('<img src="'+action+'" width="1" height="1" />'); 
    }); 
}); 

如果我調試這在桌面瀏覽器,我可以看到變量「動作」被用適當的值替換佔位符文本進行更新。但我在我的GA儀表板上看到,由於我看到很多「PLC_HOLDER」事件標籤,因此這不會發生在移動設備上。

字符串.replace()函數在手機上可能無法正常工作嗎?

+0

試試'action.replace(/ PLC_HOLDER /,bundle);' – Bergi

回答

0

replace函數在JavaScript 1.2中引入,它自1997年以來一直存在。某些較舊的設備(閱讀:瀏覽器)可能不會完全支持JavaScript的某些功能。

我會檢查在谷歌分析,看看哪些設備/瀏覽器都通過,這有可能給你的你是否需要改變你的產品代碼使用其他的東西比replace函數來處理這些指示讓PLC_HOLDER串設備,或者如果您可以安全地忽略這些設備。

+0

感謝您的提示。看看GA,我可以看到來自美國(我們在新西蘭)。並看到三種不同的瀏覽器:DoCoMo,Samsung-sgh-e250和Googlebot。兩個域名:googlebot和未知。它可能是某種機器人嗎? – Nicolas