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バリス内でエラーが発生する

error : SyntaxError: missing } 関数本体の後に

alert('it works inside');バリスの中に入れただけでscript(jquery関連のコードをすべて削除)、ページの読み込み、「直接」と「外部で動作します」という2つのメッセージが表示されますが、「内部で動作します」というメッセージは表示されません。

ドキュメントページで述べたように動作すると思われます

テンプレートでの 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 に答える