5

基本的な JavaScript 関数がいくつかあります。

<script type="text/javascript">
    function someTestFunction(param1, param2) {
        //do something
    }
</script>

および Freemarker コード:

<#if something==somethingElse>
    // call: someTestFunction(something, 123)
<#else>
    // call: someTestFunction(somethingElse, 345)
</#if>

私の質問は次のとおりです。可能であれば、freemarker タグ内から someTestFunction() を呼び出す方法は?

4

1 に答える 1

7

Freemarker は Java テンプレート言語です。つまり、サーバー上で実行されます。javascript は、クライアント (ユーザーのブラウザー) で実行されます。この方法では、Java サーバーから JavaScript 関数を呼び出すことはできません。

次のようなことができます。

<script>
<#if something==somethingElse>
    someTestFunction(something, 123);
<#else>
     someTestFunction(somethingElse, 345);
</#if>
</script>

これは、設定されているサーバー変数に応じて、JavaScript がクライアント側で実行されることを意味します。

于 2012-07-04T11:08:13.923 に答える