好吧,我正在尝试在YUI面板中播放Flash视频。我无法让它在IE中工作。修正了它,但后来导致它无法在FireFox中工作。我花了HOURS调试,这就是我发现的:我的XSLT文档导致了问题!这是:
<div id="mediaDisplay">
<xsl:if test="//video/videoFile">
<div class="flash" id="flashVid">
<noscript>
<object type="application/x-shockwave-flash" data="flash/playerVar1.2.swf" width="525" height="425" id="MediaEmbedObject" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param name="movie" value="flash/playerVar1.2.swf"/>
<param name="salign" value="lt"/>
<param name="loop" value="false"/>
<param name="menu" value="false"/>
<param name="allowFullScreen" value="true"/>
<param name="AutoPlay" value="true"/>
<param name="FlashVars" value="movieSrc={$videouri}"/>
<embed AutoPlay="true" src="flash/playerVar1.2.swf" quality="high" name="videogalleryObject" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="525" height="425" id="videogalleryObject" FlashVars="{$videouri}" allowFullScreen="true">
</embed>
</object>
</noscript>
<form action="" name="flashForm">
<fieldset>
<input type="hidden" name="flashDivId" value="flashVid"/>
<input type="hidden" name="flashWidth" value="525"/>
<input type="hidden" name="flashHeight" value="425"/>
<input type="hidden" name="flashUrl" value="flash/playerVar1.2.swf"/>
<input id="playingFlash" type="hidden" name="FlashVars" value="{$videouri}"/>
<input type="hidden" name="flashName" value="Flash"/>
<input type="hidden" name="flashAltText" value="{//video/altText}"/>
<input type="hidden" name="allowScriptAccess" value="always"/>
<input type="hidden" name="allowFullScreen" value="true"/>
</fieldset>
</form>
</div>
</xsl:if>
</div>
现在,它在这里写的方式适用于FireFox。为了使它在IE中工作,唯一真正做到这一点的是从data="flash/playerVar1.2.swf"
标记中删除<object>
属性并将其更改为value="flash/playerVar1.2.swf"
。这样做可以让我在IE中获得全部功能,但在FireFox中没有任何功能。我会给你一个链接,亲自看看,但它仍然在质量保证。有没有人有办法在所有平台上进行这项工作。有没有办法在我的XSLT中内联浏览器检测,然后给它条件?任何和所有的想法将不胜感激。谢谢!
答案 0 :(得分:0)
我很确定<embed>
内的<object>
无效标记。即使是这样,您也应该真正关注Which browsers support the <embed> and <object> tags?,因为<embed>
仅 valid in HTML5。
答案 1 :(得分:0)
我最后编写了浏览器检测并为IE运行了不同的代码,其中value =“flash / playerVar1.2.swf”而不是data =“flash / playerVar1.2.swf”。在我看来,最简单的方式来满足IE的野兽。哦,这在IE9的原始迭代中运行良好。