1

我正在尝试在模板中包含一些 javascript 代码。

我的html页面的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="jquery-jtemplates.js"></script>
</head>

<body>
    <div id="infos"></div>
    <div id="my_template"></div>

    <script type="text/javascript">
        $(document).ready(function() {
            $('#my_template').setTemplateURL("my_template.html");
            try {
                $('#my_template').processTemplate({'var' : 1});
            }
            catch (e) {
                $('#infos').html('error : '+e);
            }
            $('#my_button').click(function(){
                alert('it works outside');
            });
        });
    </script>

</body>
</html>

和模板

content of the template<br/>
{#if $T.var == 1}

 <script type="text/javascript">
  $(document).ready(function() {

   $('#my_button').click(function(){
    alert('it works inside');
   });

  });
 </script>
 <input type='submit' id='my_button' value='click me' onclick='alert("direct");'/>

{#else}
 not working
{#/if}

infos在应答器内给我一个错误

错误:语法错误:函数体后缺少}

如果我只是放在alert('it works inside');应答器内script(删除所有与 jquery 相关的代码),则页面加载、“直接”和“它在外部工作”这两条消息会显示,但不会显示“它在内部工作”消息。

它应该像文档页面上所说的那样工作

允许在模板中使用 JavaScript 代码

谢谢

4

2 回答 2

1

看起来{}标志被模板预处理器弄乱了。我不熟悉 jtemplate,但这可能是您问题的解决方案:jTemplates escape {$

于 2010-05-27T09:26:22.973 回答
0

我找到了我认为的解决方案。

该模板只允许我在标签内执行非常简单的 JS,<script>但我可以调用在我的主页中定义的函数或使用外部 JS 文件

content of the template<br/>
{#if $T.var == 1}
    <script type="text/javascript" src="fct_template.js"></script>
    <input type='submit' id='my_button' value='click me'/>
{#else}
    not working
{#/if}

我可以把我想要的所有代码放在哪里

于 2010-05-27T08:58:02.923 回答