2009-05-12 32 views
6

Vấn đề là đôi khi GA mất một chút thời gian để tải và các hàm jQuery ready() của tôi không chạy cho đến khi nó được thực hiện. Tôi muốn chuyển chính mã GA vào cuối hàm ready(). Tôi không tìm kiếm tích hợp theo dõi nhấp chuột bổ sung - tôi chỉ muốn các tập lệnh ready() của tôi chạy trước tiên.Tải Google Analytics từ tài liệu jQuery đã sẵn sàng chưa?

Câu hỏi của tôi là: 1) Việc di chuyển mã GA có phá vỡ theo dõi chỉ số theo bất kỳ cách nào không? Và, 2) Tôi có cần mô phỏng việc sử dụng hai thẻ tập lệnh (thẻ tạo thẻ tập lệnh bên ngoài và thẻ gọi hàm này) không? Nếu vậy, tại sao, và cách tốt nhất để làm điều đó trong một hàm jQuery là gì?

Để giải thích # 2, đây là đoạn code GA hiện đi ngay trước thẻ cơ thể đóng cửa:

<script type="text/javascript"> 
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); 
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); 
</script> 
<script type="text/javascript"> 
try { 
var pageTracker = _gat._getTracker("UA-8704511-1"); 
pageTracker._trackPageview(); 
} catch(err) {}</script> 

Trả lời

1

Lý do có hai khối kịch bản là vì kịch bản trong khối đầu tiên chèn một tham chiếu đến Tệp javascript Google Analytics giữa hai khối. Nếu nó sẽ được tất cả trong cùng một khối, theo dõi sẽ cố gắng được khởi tạo trước khi nó đã được nạp. Vì vậy, # 2 là chắc chắn đúng, bạn sẽ cần phải có hoặc thi đua hai thẻ script.

3

Dường như Google đã giải quyết vấn đề này như tốt - xem này gần đây hơn Stack Overflow question

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