【问题标题】:XSLT issues with playing Flash in IE and FireFoxXSLT 在 IE 和 FireFox 中播放 Flash 的问题
【发布时间】:2011-07-20 13:39:25
【问题描述】:

好的,我正在尝试在 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 中工作,唯一真正成功的方法是从 &lt;object&gt; 标记中删除 data="flash/playerVar1.2.swf" 属性并将其更改为 value="flash/playerVar1.2.swf"。这样做可以让我在 IE 中获得全部功能,但在 FireFox 中没有。我会给你一个链接,让你自己看看,但它仍在 QA 中。有没有人有办法在所有平台上进行这项工作。有没有办法在我的 XSLT 中内联运行浏览器检测,然后给它条件?任何和所有的想法将不胜感激。谢谢!

【问题讨论】:

  • 抱歉,我花了这么长时间才回复安迪。我应该记得更频繁地在这里查看,但通常我会在发布答案之前结束解决问题。我知道我应该来这里并发布我对我的问题的解决方案,我现在要回去做那件事。我比以往任何时候都忙,显然,我忽略了回到这里。另外,我还没有一个可行的解决方案,我可以接受它作为可行的解决方案。在这种情况下我该怎么办?
  • 回答您自己的问题是完全有效的,这样做将有助于未来的用户发现这个问题。当其他人支持您的问题和/或回答时,它也可能为您赢得声誉。

标签: javascript html xml flash xslt


【解决方案1】:

我相当确定&lt;object&gt; 中的&lt;embed&gt; 不是有效标记。即使是这样,你也应该看看Which browsers support the <embed> and <object> tags?,因为&lt;embed&gt;只是valid in HTML5

【讨论】:

    【解决方案2】:

    我最终编写了浏览器检测,并为 IE 运行了与其他代码不同的代码,其中 value="flash/playerVar1.2.swf" 而不是 data="flash/playerVar1.2.swf"。在我看来,满足 IE 野兽的最简单方法。哦,这在 IE9 的原始迭代中运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多