在 ColdFusion 9 中使用 Flash 表单时出现 JavaScript 错误

Posted

技术标签:

【中文标题】在 ColdFusion 9 中使用 Flash 表单时出现 JavaScript 错误【英文标题】:JavaScript Error when using Flash Forms in ColdFusion 9 【发布时间】:2012-08-22 22:58:27 【问题描述】:

我在 ColdFusion 9 上遇到了在 ColdFusion 8 下完美运行的 Flash 表单的问题。在浏览器中查看 Flash 表单时,表单元素本身正确显示,但每个字段的数据未在输入中呈现元素,并且在提交表单时不存在。页面加载时出现错误:

964024021.mxml.cfswf:1 ReferenceError: Can't find variable: updateHiddenValue

函数updateHiddenValue 是在/CFIDE/scripts/cfform.js 中定义的函数,它正在加载到页面中。如果我使用控制台直接运行该功能,它运行没有问题:

为了弄清楚为什么会发生这种情况,我启动了 Charles 并观察了对服务器的请求。正如您在下面的屏幕截图中看到的那样,.js 文件收到 200 个响应,表明它们很好,但 cfswf 请求出现“连接关闭”错误,然后是 200 个请求。 cfswf 请求显然正确完成,否则我根本看不到 flash 表单。

所以我需要弄清楚为什么我会收到这些.js 错误,这样我才能让这个 Flash 表单正常工作。我只能假设错误来自闪存方面或通过 Flash Remoting (?),我只是不知道如何调试此问题并让事情继续发展。

【问题讨论】:

看起来调用一次不成功然后调用成功。 .cfswf 文件将是实际编译的 Flash 文件,对吗?不是给 CFC 打电话。包含updateHiddenContent()函数的js文件在哪里? cfform.js 是包含该功能的那个,它在请求的文件列表中排名第三。 似乎是同步问题。您是否尝试过调整 cfswf 文件的缓存?也许他们每次都需要重新编译。我认为有一个属性设置。 Dan,您是通过任何 Flash 表单获得的,还是仅使用这个特定的?如果是“任何形式”,您能否发布一个独立的复制案例供我们查看@和剖析。 我知道这完全没有建设性,但请……看在 Pete 的份上。请停止使用 Flash 表单的人。他们造成的破坏比他们解决的更大。 【参考方案1】:

我在开发一个应用程序时遇到了同样的错误。 您可能会在此之前声明一些其他脚本,这会带来冲突。 评论所有其他人,然后重试。 解决了我的这个打了一个试用的方法。我评论了所有脚本运行我的应用程序,它成功了。

【讨论】:

【参考方案2】:

引用cfform.js 的脚本标签可能在引用swf 的对象标签之后加载。通过浏览器查看源代码来检查订单以进行验证。使用mm.cfg 与Vizzy 和debug player 来查看Flash 端发生的事件。以下是一些可能有助于解决问题的其他资源:

Using ActionScript in Flash forms cfajaxproxy cfajaxproxy and the head tag Calling cfform validation from custom javascript functions

【讨论】:

以上是关于在 ColdFusion 9 中使用 Flash 表单时出现 JavaScript 错误的主要内容,如果未能解决你的问题,请参考以下文章

找不到Coldfusion 9 Datasource

cfcomponent 中的 cfquery 未在 Coldfusion 9 中返回最新结果

Coldfusion 9中的清洁字符串/输入

更改 CF9 中的 OnRequestEnd 行为(是 ColdFusion 9 错误 - 无法在 OnRequestEnd 中引用请求变量)

在 ColdFusion 中如何使用 in 变量获取 Oracle 存储过程以返回值?

本地主机上 ColdFusion 9 和 ColdBox 中的 NullPointerExceptions