Javascript Internet Explorer中Flash v11.8.800.168函数调用失败

Javascript Internet Explorer中Flash v11.8.800.168函数调用失败,javascript,flash,internet-explorer,firefox,Javascript,Flash,Internet Explorer,Firefox,该公司最近升级到Flash v11.8.800.168,使用SWFObject 1.1加载的Flash电影在Internet Explorer Firefox中无法正常工作。使用jquery document.ready方法动态加载电影,使用新的SWFOObject。。。;再次使用so.writeID方法swfoobject 1.1\ movieonload调用一个JavaScript函数,该函数是使用服务器脚本动态构建的。通过调试器检查,函数正在正确调用。JavaScript函数调用flash

该公司最近升级到Flash v11.8.800.168,使用SWFObject 1.1加载的Flash电影在Internet Explorer Firefox中无法正常工作。使用jquery document.ready方法动态加载电影,使用新的SWFOObject。。。;再次使用so.writeID方法swfoobject 1.1\

movieonload调用一个JavaScript函数,该函数是使用服务器脚本动态构建的。通过调试器检查,函数正在正确调用。JavaScript函数调用flash电影中的一个方法,并向其传递一些XML,该XML用于呈现一些用户和导航项

大概是这样的:

function calledFromFlash() {
 document.getElementById("FlashMovie").renderUsingXml('<?xml version 1.0"?><lotsofxml></lotsofxml>');
}
正如我所说,这一切在Firefox和新的Flash版本中仍然有效

当我使用IE调试器的单步执行上述函数时,我将获得以下步骤:

function anonymous() {
    return eval(this.CallFunction("<invoke name=\"renderUsingXml\" returntype=\"javascript\">" + __flash__argumentsToXML(arguments, 0) + "</invoke>"));
}
在这一点上,我检查了arguments变量,它包含了人们所期望的XML。在进入下一步后,我得到以下信息:

try { __flash__toXML(calledFromFlash(undefined)); } catch (e) { "<undefined/>"; }
此时,调试器已经处于捕获状态,但在将代码带入该部分的过程中,我可以看到e是预期的对象

我所尝试的:

没有SWFObject的静态实现。这很有效。但是Firefox没有正确处理XML,这似乎与IE是同一个问题 升级到SWFObject 2.2。使用动态实现,它仍然失败。使用静态实现,它可以在IE中工作,但不能在Firefox中工作 这不是我的flash电影,来源是。。。嗯,我不知道。写这封信的人已经离开了公司。尽管如此,这似乎是一个疯狂的问题


我建议的修复方法只是在Firefox中使用SWFObject,在IE中使用静态实现,但我真的想知道问题出在哪里。

这是由Flash Player 11.8.800.168中的错误造成的。它已在11.8.800.175中修复

错误修复:

3630443 - [External][Windows][IE] ExternalInterface.call() method with non-ASCII text as a parameter corrupts the characters on the Javascript side
另见