2010-10-13 6 views
1

J'ai une page ASP.NET simple qui utilise le lecteur multimédia VLC pour lire une vidéo dans IE. J'ai aussi quatre boutons pour contrôler la lecture:Une balise d'objet HTML peut-elle être placée à l'intérieur d'une balise de formulaire HTML?

Play, Pause, Stop, and Mute

Les quatre boutons appellent des fonctions JavaScript qui accèdent au contrôle ActiveX. Lorsque je clique sur l'un des boutons, je reçois l'erreur suivante dans la fonction JavaScript:

"Microsoft JScript runtime error: 'vlc' is undefined".

Cependant, si déplacer la balise object pour le lecteur vlc en dehors de la balise form, le JavaScript fonctionne correctement et je peux contrôler la lecture de la vidéo.

Ma question est pourquoi le tag object doit-il être en dehors de la balise de formulaire pour que ce code fonctionne correctement?

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="VlcTest.Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>VLC Test Page</title> 

    <script type="text/javascript"> 
     function mute() { 
      vlc.audio.toggleMute(); 
     } 
     function play() { 
      vlc.playlist.play(); 
     } 
     function stop() { 
      vlc.playlist.stop(); 
     } 
     function pause() { 
      vlc.playlist.togglePause(); 
     } 
    </script> 

</head> 
<body> 

    <form id="form1" runat="server"> 
     <div> 

      <object type="application/x-vlc-plugin" 
       id="vlc" 
       width="720" 
       height="548" 
       classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" > 
       <param name="MRL" 
        value="C:\Inetpub\wwwroot\Movies\Funny Cats.flv" /> 
       <param name="volume" value="50" /> 
       <param name="autoplay" value="false" /> 
       <param name="loop" value="false" /> 
       <param name="fullscreen" value="false" /> 
      </object> 

      <br /> 

      <div id="controls"> 
       <input type="button" onclick="play()" value="Play" /> 
       <input type="button" onclick="pause()" value="Pause" /> 
       <input type="button" onclick="stop()" value="Stop" /> 
       <input type="button" onclick="mute()" value="Mute" /> 
      </div> 

     </div> 
    </form> 
</body> 
</html> 

Répondre

0

Le problème est que dans la balise <form> l'élément <object> est hors de portée.

Essayez d'utiliser:

function play() { 
    var player = document.getElementById("vlc"); 
    player.playlist.play(); 
} 
Questions connexes