我正在使用 jQuery 开发 Javascript,使用 Chrome 23.0.1271.97。我有一个 Flex <object>
,HTML 如下:
<div id="chartdiv" style="display:none;">
<object type="application/x-shockwave-flash" id="barchart" data="barchart.swf" style="width:100%;height:100%;">
<param name="movie" value="barchart.swf" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="always" />
<param name="wmode" value="transparent" />
</object>
</div>
div 通常是隐藏的,但无论如何都会在 onLoad 上初始化对象。但是,当应用程序加载时,会显示这个 div 并且一切正常。问题是,如果它从那时起再次隐藏(只是隐藏,例如$div.hide()
,未初始化),然后重新显示,我无法访问 Flex 对象方法。
我明白了Object #<HTMLObjectElement> has no method 'blah'
。它似乎已被修改,但我不确定是什么原因造成的。
那么有什么变化呢?好问题。成功加载后,该对象将工作,并且在控制台中如下所示:
<object type="application/x-shockwave-flash" id="barchart" data="barchart.swf" style="width:100%;height:100%;">
</object>
该对象在尝试失败时看起来像这样(在显示、隐藏和返回之后):
<object type="application/x-shockwave-flash" id="barchart" data="barchart.swf" style="width:100%;height:100%;">
<param name="movie" value="barchart.swf">
<param name="quality" value="high">
<param name="allowScriptAccess" value="always">
<param name="wmode" value="transparent">
</object>
这让我觉得也许我找错地方了。我已经浏览了我的前端 Javascript 代码,除了通过 jQuery 隐藏它之外,似乎没有任何修改对象的调用。我被告知 Flex 对象不知道它是否显示。在我要求查看代码之前,我想确保我在正确的轨道上。