在 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 端发生的事件。以下是一些可能有助于解决问题的其他资源:
【讨论】:
以上是关于在 ColdFusion 9 中使用 Flash 表单时出现 JavaScript 错误的主要内容,如果未能解决你的问题,请参考以下文章
cfcomponent 中的 cfquery 未在 Coldfusion 9 中返回最新结果
更改 CF9 中的 OnRequestEnd 行为(是 ColdFusion 9 错误 - 无法在 OnRequestEnd 中引用请求变量)