0

在我的网站中,我只使用客户端脚本(jsrender 和 jquery)来呈现数据。我只提供来自 json-feed 的数据,因此(直到现在??)不需要完整的网络应用程序。

现在我正在尝试集成 Yahoo Web Analytics (YWA)。在搜索结果页面中,我尝试将 json-feed 中的查询字符串和总命中数捕获到 YWA javascripts 中,但这非常困难,因为我试图将客户端 jsrender 变量打印到客户端 YWA 变量中:

 <script type="text/javascript" src="http://d.yimg.com/mi/eu/ywa.js"></script>
 <script type="text/javascript">
    /*globals YWA*/
    var YWATracker = YWA.getTracker("1000918585199");
    var ACTION='INTERNAL_SEARCH';
    var _S_ISK={{=querystring}};
    var _S_ISR={{=totalHits}};
    YWATracker.setCF(01, 'Search-Results'); 
    YWATracker.setCF(04, 'no');
    YWATracker.setCF(06, 'KAW');
    YWATracker.setDocumentName("Result Page");
    YWATracker.setDocumentGroup("KAW");
    YWATracker.submit();
  </script>
  <noscript>
    <div><img src="http://s.analytics.yahoo.com/p.pl?a=1000918585199&js=no" width="1"     height="1" alt="" /></div>
   </noscript>

这是行不通的。有什么解决办法吗?

4

1 回答 1

0

解决方案是将脚本标签附加到 html:

$("#statistics").append('<scr' + 'ipt type="text/javascript">var YWATracker = YWA.getTracker("1000918585199");var ACTION="INTERNAL_SEARCH"; var _S_ISK="' + querystring + '"; var _S_ISR=' + totalHits + ';YWATracker.setCF(01, "Search-Results");YWATracker.setCF(04, "no");YWATracker.setCF(06, "KAW");YWATracker.setDocumentName("Result Page");YWATracker.setDocumentGroup("KAW");YWATracker.submit();</scr' + 'ipt>');

这让我对如何解决它有了一个好主意:为什么将 <script> 附加到动态创建的 <iframe> 似乎会在父页面中运行脚本?

于 2012-02-01T11:24:18.697 回答