执行javascript作为coldfusion页面加载

时间:2014-02-28 14:20:04

标签: javascript jquery ajax coldfusion

我有一个ColdFusion页面,其上有几个cfinclude模板调用,其中包含单独的文件到页面中。我想在每次cfinclude模板调用之前更新javascript变量。我尝试过使用:

<script type="text/javascript">
myvariable = 'new status';
</script>

然而,在页面上包含的每个模板完成处理之前,javascript才会执行,而不是在每个模板执行之前执行。

有没有什么方法可以在页面加载时实际执行javascript代码?

1 个答案:

答案 0 :(得分:4)

您可以使用<cfflush>完成此操作。

CFFlush会在继续处理时将当前的HTML / javascript输出发送到浏览器。它看起来像这样:

<CFInclude template="process1.cfm">
<CFoutput>
    <script type="text/javascript">
    myvariable = 'new status';
    </script>
</CFoutput>
<cfflush>
<CFInclude template="process2.cfm">

...并重复。

一旦加载,javascript就会被浏览器解释。这有时会导致不可预测的行为,因为DOM不完整且处于就绪状态,但对于简单的操作,它可以工作。

编辑:请注意,在浏览器处理之前,您经常需要使用<cfoutput>#repeatString(" ", 250)#</cfoutput>之类的内容填充输出。见http://www.raymondcamden.com/index.cfm/2006/11/29/A-Loading-page-with-CFFLUSH-and-JavaScript