访问速度模板中的 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"> </div>
此外,您需要确保 JavaScript 在 after the DOM is fully loaded 之前不会 运行(或使用特定于 Atlassian 的 AJS.toInit()
)。
我正在尝试获取速度和要传入的脚本以及 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"> </div>
此外,您需要确保 JavaScript 在 after the DOM is fully loaded 之前不会 运行(或使用特定于 Atlassian 的 AJS.toInit()
)。