在IE和FireFox中播放Flash的XSLT问题
XSLT issues with playing Flash in IE and FireFox
好了,我正在尝试在YUI面板中播放flash视频。我有麻烦让它在IE中工作。修复了它,但这导致它无法在FireFox中工作。我花了几个小时调试,结果发现:我的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中工作,实际上唯一做的事情是从<object>
标签中删除data="flash/playerVar1.2.swf"
属性并将其更改为value="flash/playerVar1.2.swf"
。这样做可以让我在IE中获得完整的功能,但在FireFox中却没有。我想给你一个链接,但它还在QA阶段。有没有人有办法让它在所有平台上运行?是否有一种方法可以在XSLT中内联地运行浏览器检测,然后为其提供条件?任何和所有的想法都将受到赞赏。谢谢!
我很确定<object>
中的<embed>
不是有效的标记。即使是这样,你也应该看看哪些浏览器支持嵌入。和& lt; object>标签?由于<embed>
是只有在HTML5中有效
我最终在浏览器检测中编写,并在IE中运行不同的代码,其中value="flash/playerVar1.2.swf"而不是data="flash/playerVar1.2.swf"。在我看来,最简单的方式来满足IE的野兽。哦,这在IE9的原始版本中工作得很好。
相关文章:
- 使用javascript在Flash中加载外部图像
- 使用JavaScript检测Flash
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- Flash AS3关闭浏览器窗口
- javascript从任何嵌入式flash视频中发现.flvurl
- Expressjs/AngularJS:实现req-flash后出错
- 在FF和IE中使用vimeo播放器的问题-加载flash播放器而不是使用HTML5播放器
- Flash and External Javascript
- IE10+11:XSLT转换将任意CR/LF添加到XML中
- 如何在flash html5画布项目中动态更改文本颜色
- 用于播放背景音乐的嵌入式flash播放器在IE浏览器中不起作用
- req.flash()节点表达式4
- 在禁用浏览器flash插件的情况下运行Karma测试
- 在选择更改时更改从外部javascript生成的flash播放器
- XSLT在IF语句后添加图书价格
- 将视频从Flash流式传输到HTML5
- 设置显示后Flash对象方法不可用:无
- 从javascript调用flash点击事件
- 在wordpress中使用javascript在flash和iframe版本的直播Ustream之间切换
- 在IE和FireFox中播放Flash的XSLT问题