在速度模板中访问jquery / javascript变量

时间:2015-12-02 16:51:59

标签: javascript jquery velocity confluence

我正在尝试获取速度和脚本以传入并返回变量。

#set ( $test = "" ) 
...
<script>
    var someVariable = '';
    [some stuff happens and someVariable gets set]
    #set ( $test = someVariable )
</script>
...
$test

上面的'$ test'会打印出someVariable所设置的内容。

如何从脚本标记内导出变量并将其返回到速度模板以使用?

有关更多上下文,我一直在尝试按照this创建汇总宏。我希望能够使用保存的下拉项目并使用它来修改我的其他宏。

1 个答案:

答案 0 :(得分:1)

Velocity是服务器端编译的模板语言,而JavaScript则在客户端执行。当您的JavasScript运行时,Velocity代码已经编译,转换为HTML并发送到客户端,因此您无法直接执行所需的操作。

相反,您需要直接修改DOM。例如,使用jQuery:

...
<script>
    var someVariable = '';
    [some stuff happens and someVariable gets set]
    jQuery(".myClass").text(someVariable);
</script>
...
<div class="myClass">&nbsp;</div>

此外,您需要确保JavaScript在after the DOM is fully loaded之前(或使用特定于Atlassian的AJS.toInit())运行。