繁体   English   中英

在Coldfusion页面加载时执行javascript

[英]execute javascript as coldfusion page loads

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

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

但是,直到页面上包含的每个模板都完成处理,而不是在每个模板执行之前,JavaScript才会执行。

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

您可以使用<cfflush>完成此<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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM