我正在通过jQuery get Ajax调用检索内容,然后将其添加到元素中。添加HTML代码没有任何问题,只是JS代码丢失。我究竟做错了什么?当我在Firebug中查看响应时,它仍然存在,它只是没有添加到HTML元素中。
我的Ajax请求:
function get_overlay_content(path)
{
$.get(path, function(data) {
$("#overlay_content").html(data).fadeIn(500);
$(function()
{
// do something
});
});
}
Firebug中的回复:
<div id="imprint" class="overlay_box">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXX-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<div id="overlay_close" onclick="close_overlay();"><img src="/2012/images/overlay_close.png" id=""></div>
# ETC
更新后的HTML:
<div id="overlay_content">
<div id="imprint" class="overlay_box">
<div id="overlay_close" onclick="close_overlay();"><img src="/2012/images/overlay_close.png" id=""></div>
<div class="overlay_heading"><img src="/2012/images/heading_download.png" height="65"></div>
# etc.
我的猜测是它与编码有关。你觉得怎么样?
谢谢! 奥拉夫
感谢Uzi,根据Google指南Asynchronous Tracking Usage Guide
,解决方案非常简单但是要让每个人都明白:如果你有一个主文件(index.html)从你通过AJAX GET请求(例如jQuery.get())检索partials(让我们称之为/partials/_download_pdfs.html)您需要做的就是使用Google Analytics跟踪每个AJAX请求如下:
为Analytics ABOVE添加其他Javascript的跟踪代码 和你的AJAX GET请求,将以下代码放在回调函数中(如果你没有把它放在回调中,它可能会减慢你的实际请求)
$.get(path_to_track, function(data) {
// Fade in effect:
$("#container").html(data).fadeIn(500);
// this part is interesting:
_gaq.push(['_setAccount', 'UA-XXX-1']);
_gaq.push(['_trackPageview', path_to_track]);
// Do other stuff in the callback
});
就是这样。如果您想在使用jQuery的AJAX GET请求检索的页面上跟踪PDF下载(正如我所做的那样),只需将以下代码添加到部分(例如/partials/_download_pdfs.html)
<script type="text/javascript">
$(document).ready(function() {
$(".pdf_link").click(function(){
_gaq.push(['_setAccount', 'UA-XXX-1']);
_gaq.push(['_trackPageview', '/pdf/' + $(this).attr("id")]);
});
});
</script>
答案 0 :(得分:1)
如果我理解正确,您将使用AJAX获取HTML代码。 该代码块包含一个脚本标记,您希望脚本运行一个请求完成。 不幸的是,它不能以这种方式工作,因为就DOM而言,这只是一个元素。
我不确定为什么你需要一个用于运行谷歌分析的AJAX代码,但是如果它包含动态数据,只需让AJAX调用返回你需要的参数,并在本地运行这个代码。