【问题标题】:Inserting a block of JavaScript code into a PHP script将一段 JavaScript 代码插入 PHP 脚本
【发布时间】:2016-01-16 11:12:23
【问题描述】:

我的一个朋友想让我为他的网站收集一些统计数据,所以我给了他以下代码,以便在他的页脚中插入:

<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一无所知,我知道如何解决这个问题。

【问题讨论】:

    标签: javascript php templates include smarty


    【解决方案1】:

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

    <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>
    

    【讨论】:

    猜你喜欢
    • 2016-10-21
    • 2012-03-28
    • 2020-10-13
    • 1970-01-01
    • 2012-06-10
    • 2016-06-13
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    相关资源
    最近更新 更多