如何在prettyPhoto图像视图(灯箱)中插入跟踪代码?

时间:2012-06-28 00:35:16

标签: jquery append prettyphoto

我知道有关谷歌分析的类似问题,但在这种情况下,跟踪代码有点复杂。 我想将跟踪代码附加到通过prettyPhoto查看的每个图像。

在prettyPhoto init方法中,我定义了changepicturecallback来调用一个函数:myCallbaclFunc:

$(".gallery:first a[rel^='prettyPhoto']").prettyPhoto({
            animation_speed:'normal',
            theme:'light_square',
            slideshow:3000, 
            autoplay_slideshow: false, 
            show_title: true, 
            overlay_gallery_max: 3000,
            changepicturecallback: myCallbackFunc
            });

然后,myCallbackFunc被定义为:

myCallbackFunc = function() {
//append code to social container div
$('.pp_social').append('<div class="netscope"><script type="text/javascript">var WRP_ID=316817;var WRP_SECTION="COMUNIDADE";var WRP_SUBSECTION="Estudos MensHealth";var WRP_SECTION_GRP="316817 - MensHealth";var WRP_SUBSECTION_GRP= WRP_SECTION;var WRP_CONTENT="Home content";var WRP_CHANNEL;var WRP_ACC;wreport_ok=0;</scr'+'ipt><script type="text/javascript" src="http://www.autohoje.com/inc/netscope2.js"></scr'+'ipt><script type="text/javascript">if(wreport_ok==1){ var w_counter = new wreport_counter(WRP_SECTION, WRP_SUBSECTION, WRP_ID, WRP_ACC, WRP_CHANNEL, WRP_SECTION_GRP, WRP_SUBSECTION_GRP);w_counter.add_content(WRP_CONTENT);w_counter.count();}</scr'+'ipt></div>');

}

但是当我检查生成的代码时,我得到的是emtpy div class =“netscope”

我应该使用除“追加”之外的其他方法吗? 我应该以某种方式逃避javascript代码吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

Can't append <script> element

您可能在浏览器中遇到此问题。

或者它可能是您在DOM中看不到它的问题,

请参阅@Hendra Uzia的回答,参考问题,

  

所有jQuery的插入方法都在内部使用domManip函数   在将元素插入到元素之前和之后清理/处理元素   DOM。 domManip函数所做的一件事就是拉出任何东西   要插入的脚本元素并通过它运行它们   “evalScript例程”而不是将它们与其余的DOM一起注入   分段。它分别插入脚本,评估它们,然后   将它们从DOM中删除。

     

我认为jQuery这样做的原因之一是避免   Internet Explorer中可能发生的“权限被拒绝”错误   在某些情况下插入脚本。它也避免了   反复插入/评估相同的脚本(可以   如果它在一个包含元素内,则可能导致问题   你正在插入然后移动DOM。

     

我对脚本注入错综复杂的理解非常好   有限,所以如果你想进一步讨论,也许你可以发帖   jQuery论坛上的一个主题。