2012-01-13 50 views
12

jQueryMobile tải trang đầu tiên của nó như mọi trang web. Việc tích hợp Google Analytics thông thường hoạt động - yêu cầu ist được theo dõi. Nhưng các trang sau được tải không đồng bộ và các nhấp chuột của người dùng không được theo dõi.Cách tích hợp Google Analytics vào trang web jQueryMobile

Làm cách nào để tích hợp Google Analytics vào trang web jQueryMobile để tất cả các lần nhấp vào trang được theo dõi?

+1

[Dưới đây là một câu trả lời được cập nhật với sự kiện ràng buộc chính xác, sử dụng jQuery Mobile 1.3] (http://stackoverflow.com/a/18736218/315024) – Walf

Trả lời

15

Jon Gales đã viết một bài viết tuyệt vời về điều này.

http://www.jongales.com/blog/2011/01/10/google-analytics-and-jquery-mobile/

Dưới đây là mã ông khuyến cáo sử dụng:

$('[data-role=page]').live('pageshow', function (event, ui) { 
    try { 
     _gaq.push(['_setAccount', 'YOUR_GA_ID']); 

     hash = location.hash; 

     if (hash) { 
      _gaq.push(['_trackPageview', hash.substr(1)]); 
     } else { 
      _gaq.push(['_trackPageview']); 
     } 
    } catch(err) { 

    } 

}); 

Cập nhật

Kể từ live hiện đang bị phản đối bạn nên sử dụng sự kiện on thay vào đó, nếu you're sử dụng jQuery 1.7 +. http://api.jquery.com/on/

+3

Bạn không cần cuộc gọi _setAccount. Nếu bạn đã có nó trên trang đầu tiên. Bạn có thể gọi nhiều lần _trackPageview sau khi _setAccount – Eduardo

+2

jQuery Mobile 1.0 Final được đóng gói với jQuery Core 1.6.4 vì nâng cấp lên 1.7+ có thể gây ra sự cố (Tôi đã gặp sự cố màn hình trắng với Blackberry và 1.7). Tôi đưa bceuase này lên '.on()' hơi quá mới để sử dụng với jQuery Mobile 1.0 Final, tuy nhiên bạn có thể sử dụng '.delegate()' trong cùng một trang viên. – Jasper

+0

Lưu ý rằng bạn phải ràng buộc sự kiện này trước khi jQuery Mobile thực hiện nếu không nó sẽ không hoạt động chút nào (đặt nó trong trình xử lý di động của bạn). Và có, bạn chỉ nên gọi _SetAccount một lần nhưng nó cũng hoạt động như thế này. –

4

Đối với những người gặp vấn đề với PhoneGap và Google Analytics:

mã Google sử dụng cookie và nó không làm việc với file: // url mà là những gì PhoneGap sử dụng. Nhóm Pokki đã thực hiện a good implementation sử dụng localStorage thay cho cookie. tôi đã thực hiện một ngã ba trên github để loại bỏ sự cần thiết của pokki, vì vậy đây là một giải pháp làm việc với PhoneGap như một thư viện độc lập

https://github.com/ggendre/GALocalStorage

hy vọng điều này sẽ giúp người khác :)

Các vấn đề liên quan