ExternalInterface返回到AS3在IE中不一致工作
ExternalInterface return to AS3 not working consistently in IE
因此,我在从ExternalInterface调用返回值时遇到了一些问题。我有一段代码,看起来像这样:
var a:String = String(ExternalInterface.call("function() { var returnTest = 'test'; alert(returnTest); return returnTest;}"));
ExternalInterface.call("alert", a);
第一个警报(在第1行的匿名函数中)是正确的(显然)。然而,在IE10中,第2行的警报90%的时间都返回空值。不过,它在Firefox中每次都能工作。
为了进一步解释90%时间工作的问题,我似乎可以通过添加或删除看似毫无意义的警报来再次决定它是否有效。例如:假设它不工作,我可以添加一个警报,它就会开始工作。或者,假设它正在工作,我可以添加一个警报进行调试,但它停止工作,删除警报,仍然不工作,重新添加警报,然后它又开始工作。我知道这不是事实,但它的行为就像每次添加或删除警报时都会翻转硬币一样。
这一切只发生在IE中,每次在Firefox中都能完美工作。
谢谢。
编辑:我提供的代码不是需要工作的实际代码,而是我为验证问题所在而编写的代码。实际情况是,我们需要知道Flash运行的环境中有一个JavaScript属性,但我们无法访问SWF运行的HTML或JavaScript。我需要运行的实际代码看起来更像这样:
var pageNameFromJS:String = String(ExternalInterface.call("function() { var pageName = ServerObject.currentPage.name; alert(pageName); return pageName;}"));
ExternalInterface.call("alert", pageNameFromJS);
第一行中的警报只是为了确保ServerObject.currentPage.name有效,它确实有效。第二行中的警报是在我们注意到需要pageNameFromJS的函数不工作时添加的调试代码。
真的不知道你为什么要把事情复杂化;)
你可以做得更容易:
AS3代码:
ExternalInterface.addCallback("flash_function", flash_function);
function flash_function(from_js_param){
trace('param received from js : '+from_js_param)
}
ExternalInterface.call("js_function", to_js_param)
JS代码:
function js_function(from_flash_param){
var to_flash_param = 'I received your '+from_flash_param;
(get_your_swf).flash_function(to_flash_param);
}
相关文章:
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 用javascript将script元素附加到头部;铬不能工作
- AJAX更新面板不;t工作.请帮我找出我错在哪里.
- Android和JavaScript解析API之间不一致
- 为什么jQuery代码段在没有IFrame的情况下可以工作,而在有IFrame时却不能工作
- 为什么当async标志设置为false时,xmlhttprequest中的代码可以工作,而当它设置为true时却不能工作
- Javascript的行为与PHP包含文件不一致
- 对这种与document.domain和CORS相关的不一致行为的解释是什么
- 谷歌分析跟踪内部链接不正常工作的事件
- 点击链接行为不一致
- 引导程序's的javascript在本地工作,但在部署到服务器时不能工作
- Passport.js`isAuthenticated()`不一致的行为;当它应该是真的时候是假的
- JQuery脚本没有'Don’我不能工作两次
- Excel公式到Javascript,工作但不一致
- ExternalInterface返回到AS3在IE中不一致工作
- jquery编号验证工作不一致
- Window.location.reload (true)工作不一致
- 分页Ajax在Rails中工作不一致
- Javascript日历新实例工作不一致
- 显示/隐藏在 Jquery 图像映射上不一致的工作