将 JavaScript 代码块插入到 PHP 脚本中

Inserting a block of JavaScript code into a PHP script

本文关键字:PHP 脚本 插入 JavaScript 代码      更新时间:2023-09-26

我的一个朋友希望我为他的网站收集一些统计数据,所以我给了他以下代码插入他的页面页脚:

<div>
    <script>
       var wandTopSitesUserId;
       match = document.cookie.match(new RegExp("WandTopWildlifeSites" + '=([^;]+)'));
       if (match)
          wandTopSitesUserId = match[1];
       else {
          wandTopSitesUserId = (+new Date * Math.random()).toString(36).slice(2, 12);
          document.cookie = 'WandTopWildlifeSites=' + wandTopSitesUserId + '; expires=Tue, 1 Jan 2030 00:00:00 UTC; path=/';
       }
       document.write('<div style="visibility: hidden;"><a href="http://www.www.fxxxxx.com/"><img src="http://xxxxxx.azurewebsites.net/Log/LogVisit/?siteId=2&userId=' + wandTopSitesUserId + '&pageName=' + location.pathname + '" alt="WAND Top Wildlife Sites" /></a></div>');
    </script>
 </div>

我不知道的是他正在使用PHP,而我对PHP一无所知。当他尝试将我的代码插入他的PHP脚本时,他收到以下错误:

string(125) "Smarty error: [in globalcontent:footer line 9]: [plugin] unknown tag - 'wandTopSitesUserId' (core.load_plugins.php, line 198)" string(137) "Smarty error: [in globalcontent:footer line 9]: syntax error: unrecognized tag 'wandTopSitesUserId' (Smarty_Compiler.class.php, line 590)"

对PHP一无所知,我知道如何解决这个问题。

他使用samrty模板引擎,该引擎要求您通过将javascript封装在{literal}...{/literal}中来转义javascript:

<div>
    {literal}
    <script>
       var wandTopSitesUserId;
       match = document.cookie.match(new RegExp("WandTopWildlifeSites" + '=([^;]+)'));
       if (match)
          wandTopSitesUserId = match[1];
       else {
          wandTopSitesUserId = (+new Date * Math.random()).toString(36).slice(2, 12);
          document.cookie = 'WandTopWildlifeSites=' + wandTopSitesUserId + '; expires=Tue, 1 Jan 2030 00:00:00 UTC; path=/';
       }
       document.write('<div style="visibility: hidden;"><a href="http://www.www.fxxxxx.com/"><img src="http://xxxxxx.azurewebsites.net/Log/LogVisit/?siteId=2&userId=' + wandTopSitesUserId + '&pageName=' + location.pathname + '" alt="WAND Top Wildlife Sites" /></a></div>');
    </script>
    {/literal}
 </div>