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

access jquery/javascript variable in velocity template

我正在尝试获取速度和要传入的脚本以及 return 一个变量。

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

上面的“$test”会打印出 someVariable 设置的内容。

如何从脚本标签中导出变量并将其返回给 Velocity 模板使用?

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

Velocity是服务器端编译的模板语言,而JavaScript是在客户端执行的。当你的 JavasScript 运行s 时,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())。