繁体   English   中英

用innerhtml替换内部javascript代码?

[英]Replacing inside javascript code with innerhtml?

我需要做的这么简单,而且似乎没有任何常规的swf播放器可以满足我的需求,因此我认为我需要解决此问题。 我只需要能够在高质量和低质量.flv视频之间切换。

因此,我正在考虑仅使用两个带有onclick事件的按钮来更改javascript的innerhtml,但我意识到我不知道该怎么做。 我可以创建一行JavaScript的ID,还是应该替换整个内容? 这是我的代码:

<script type="text/javascript">
var so = new SWFObject('/lessons/videos/player.swf','mpl','610','480','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addVariable('file','/lessons/videos/BukaTiende.flv');
so.write('mediaspace');
</script>

</div></div>
<input type="button" value="low"><input type="button" value="high">

在上面的代码中,我需要更改的是指向类似/lessons/videos/BukaTiende_lower.flv之类的“ /lessons/videos/BukaTiende.flv”链接。

我可以使用getElementById来做到这一点吗?

我有jQuery的。

您应该创建一个函数,将视频的url作为参数,然后使用该参数调用swfObject。(请注意,在addVariable中,我们使用了函数的参数

function loadVideo( pUrl )
{
var so = new SWFObject('/lessons/videos/player.swf','mpl','610','480','9');
so.addParam('allowfullscreen','true');
so.addParam('allowscriptaccess','always');
so.addVariable('file', pUrl);
so.write('mediaspace');
}

然后在第一时间添加调用

<script type="text/javascript">
       loadVideo('/lessons/videos/BukaTiende.flv');
</script>

aslo为您的按钮添加一些ID,以便您可以引用它们

<input type="button" value="low" id="low">
<input type="button" value="high" id="high">

然后将点击事件添加到您的按钮中。

<script type="text/javascript">
   $(document).ready(
     function(){
        $('#low').click( function(){ loadVideo('/path/to/lowversion.flv') } );
        $('#high').click( function(){ loadVideo('/path/to/highversion.flv') } );
     }
   );
</script>

我建议将这些命令封装在一个函数中,并在单击时将其中一个或另一个视频作为参数运行。

您说过有jQuery,因此不妨使用它来将click绑定到按钮。

<script type="text/javascript">
  function launch_video(quality){

    video_qual=(quality=='high')? '' : '_lower';

    var so = new SWFObject('/lessons/videos/player.swf','mpl','610','480','9');
    so.addParam('allowfullscreen','true');
    so.addParam('allowscriptaccess','always');
    so.addVariable('file','/lessons/videos/BukaTiende'+video_qual+'.flv');
    so.write('mediaspace');
    }

  $(document).ready(function(){
    $('.vid_button').click(function(){launch_video($(this).val());});
    });

</script>

</div></div><!-- I guess I'll leave those random divs in there-->

  <input class='vid_button'  type="button" value="low">
  <input class='vid_button' type="button" value="high">

当用户单击按钮时,可以从页面中删除嵌入的对象,然后重新运行将其添加到页面但具有不同变量值的脚本。 如果将SWFObject放在div中,则可以通过设置innerHTML =“”;来清除div。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM