0

誰かが写真をクリックしたときにビデオを表示し、「x」をクリックしてビデオを閉じることができる JavaScript をいくつか作成しましたが、非表示の場合でもビデオは ie8 で引き続き再生されますが、FireFox と Chrome では停止します。「xbutton」画像がクリックされたときにビデオを停止することでこれを修正する方法を誰かが教えてくれれば、私は何時間もこれと戦ってきたことを大いに感謝しています. これは私がJavaScriptのために持っているものです:

    function toggle(div_id) {
       var el = document.getElementById(div_id);
       if ( el.style.display == 'none' ) {  el.style.display = 'block';}
       else {el.style.display = 'none';}    }

    function blanket_size(popUpDivVar) {
      var blanket = document.getElementById('blanket');
      blanket_height = document.body.parentNode.scrollHeight;           
      blanket.style.height = blanket_height + 'px'; 
          }

    function popup(windowname) {
       blanket_size(windowname);    
       toggle('blanket');
       toggle(windowname);  
           }

これは私が使用しているhtmlです。Dreamweaver を使用して、コンピューターから .flv ビデオ ファイルを追加しています。

    <div id="blanket" style="display:none;"></div>
    <div id="popUpDiv" style="display:none;">
    <a href="#popUpDiv" onclick="popup('popUpDiv')"><img 
    src="../New images/newxbtn-red.png" class ="xbutton" alt = "Close"/></a>
    <p> Video Header</p>
    <!--Dreamweaver video code starts here -->
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="622"
    height="350" id="FLVPlayer">
    <param name="movie" value="FLVPlayer_Progressive.swf" />
    <param name="quality" value="high" />
    <param name="wmode" value="opaque" />
    <param name="scale" value="noscale" />
    <param name="salign" value="lt" />
    <param name="allowScriptAccess" value="always" />
    <param name="FlashVars" 
    value="&amp;MM_ComponentVersion=1&amp;skinName=Halo_Skin_3&amp;streamName=video/bf-
    eng&amp;autoPlay=true&amp;autoRewind=false" />
    <param name="swfversion" value="8,0,0,0" />
    <!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download 
    the latest version of Flash Player. Delete it if you don’t want users to see the 
    prompt. -->
    <param name="expressinstall" value="Scripts/expressInstall.swf" />
     <!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
     <!--[if !IE]>-->
     <object type="application/x-shockwave-flash" data="FLVPlayer_Progressive.swf"  
     width="622" height="350">
     <!--<![endif]-->
    <param name="quality" value="high" />
    <param name="wmode" value="opaque" />
    <param name="scale" value="noscale" />
    <param name="salign" value="lt" />
    <param name="allowScriptAccess" value="always" />
    <param name="FlashVars"  
    value="&amp;MM_ComponentVersion=1&amp;skinName=Halo_Skin_3&amp;streamName=video/bf-  
    eng&amp;autoPlay=true&amp;autoRewind=false" />
    <param name="swfversion" value="8,0,0,0" />
    <param name="expressinstall" value="Scripts/expressInstall.swf" />
    <!-- The browser displays the following alternative content for users with Flash 
    Player 
    6.0 and older. -->'
    <div>
   <p><a href="http://www.adobe.com/go/getflashplayer"><img 
   src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif"  
   alt="Get Adobe Flash player" /></a></p>
   </div>
   <!--[if !IE]>-->   
   </object>
   <!--<![endif]-->
   </object>
    <!-- Video Ends -->
     </div>
     <div class ="image">   
     <a href="#popUpDiv" onclick="popup('popUpDiv')">
     <img src="img/farmers/Donahue_Beef.jpg" width="190" height="110" alt="Beef" />
     <img src="../New images/playbtn.png" width="200" height="116" alt="Play" class = 
     "play"/></a>
     </div>

再度、感謝します!

4

2 に答える 2

3

jQuery を使用した非常に簡単な方法があるかもしれません。私の場合、オブジェクトを含むフラッシュ埋め込み div を生成しました。empty()jQuery を使用すると、クリック時の関数を使用して閉じるボタンを簡単に定義できます。これにより、div のコンテンツがクリアされ、動画は DOM に存在しなくなります。

$("#video a.close").click(function(){
 $("#flashlayer").empty();
}
于 2012-12-06T19:01:22.227 に答える
1

clickまず、要素のイベントをリッスンする必要がありますxbutton(ID を追加することをお勧めします)。

function listen(event, elem, func) {
  if (elem.addEventListener) {
    elem.addEventListener(event, func, false);
  } else if (elem.attachEvent) {
    elem.attachEvent(event, func);
  }
}

listen('load', window, function() {
  var xbutton = document.getElementById('xbutton');
  var player = document.getElementById('FLVPlayer');
  listen('click', xbutton, function(e) {
    player.Stop();
    e.preventDefault();
  });
});

JavaScript メソッドStop()を使用して、Flash ビデオを停止できます。

于 2012-03-19T20:05:34.800 に答える