【问题标题】:Adding count down timer in perl template tool kit在 perl 模板工具包中添加倒数计时器
【发布时间】:2013-06-06 19:27:56
【问题描述】:

我已经检查了在 cgi 页面中添加倒数计时器的一些可能性。但我找不到任何有用的东西。

我已经编写了文件以添加倒数计时器“Timer.js”并从 html 文件“timer.html”调用。我的问题是我想将一个值从我的 cgi 模板工具包文件传递给计时器。 html 文件作为计时器的开始。

我的模板文件是edit.html.tmpl

我在这个模板文件中有一个表,在第三列我想添加倒计时计时器。就像下面一样,我通过硬编码模板文件中的起始值来调用那里的计数器:

<td align="center">
[% PROCESS bug/timer.html %]
</td>

我想将以下值传递给 timer.html 文件作为计时器的开始。

<td align="center">
      <input name="estimated_time" id="estimated_time"
             value="[% PROCESS formattimeunit
                               time_unit=bug.estimated_time %]"
             size="6" maxlength="6">
      <input type = "Hidden" name="estimate_time" id="estimate_time" value="[% bug.estimated_time %]" size="6" maxlength="6">
    </td>

我怎样才能做到这一点????有人可以帮我做这件事吗??

【问题讨论】:

  • 所以您需要从您的[% PROCESS bug/timer.html %] 调用中获取一个值到您的Timer.js JavaScript 中吗?计时器 JavaScript 是如何启动的?难道你不能在timer.html 模板中的&lt;script&gt; 中设置一个值,然后计时器 JavaScript 可以读取它吗?
  • 我想从tmpl文件中获取值bug.estimated_time作为定时器的起始值。
  • 代替 60,我想要这个值。

标签: javascript perl cgi countdowntimer template-toolkit


【解决方案1】:

如果您可以将 JavaScript 放入该模板中,那么您可以轻松地做到这一点:

<script type="text/javascript">
    window.onload = CreateTimer("timer", [% bug.estimated_time %]);
</script>

如果CreateTimer 调用在别处,那么您可以在bug/timer.html 模板中设置一个值:

<script type="text/javascript">
    window.timer_time = [% bug.estimated_time %];
</script>

然后再使用该值:

<script type="text/javascript">
    window.onload = CreateTimer("timer", window.timer_time);
</script>

假设window.onload 脚本将出现在window.timer_time 脚​​本之后,如果不是这种情况,那么您将不得不通过以下方式强制解决问题:

window.onload = function() {
    CreateTimer('timer', window.timer_time)();
}

【讨论】:

  • 谢谢……它现在工作正常……我也有一个疑问……我不想在每次加载窗口时都重置计时器。一旦计时器得到从获取 bug.estimated_time 值开始,它会倒计时直到变为 0,而不会停止。我该怎么办??
  • 我想您可以将计时器值存储在 cookie 中,然后让 CreateTimer 检查 cookie 并返回到它的第二个参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-21
  • 2014-01-08
  • 2013-06-06
  • 2011-10-05
  • 2019-01-03
  • 2019-06-04
  • 2018-05-25
相关资源
最近更新 更多