2010-10-13 3 views
1

У меня есть простая страница ASP.NET, которая использует медиаплеер VLC для воспроизведения видео в IE. У меня также есть четыре кнопки для управления воспроизведением:Может ли тег объекта HTML размещаться внутри тега формы HTML?

Play, Pause, Stop, and Mute

Четыре кнопки вызова функции JavaScript, которые имеют доступ управления ActiveX. При нажатии на любую из кнопок, я получаю следующее сообщение об ошибке в функции JavaScript:

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

Однако, если переместить object тег для VLC Player вне form тега, то JavaScript работает правильно, и я могу управлять воспроизведением видео.

Мой вопрос: почему тег object находится за пределами тега формы, чтобы этот код работал правильно?

<%@ 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> 

ответ

0

Проблема заключается в том, что внутри тега <form><object> элемент из области видимости.

Попробуйте использовать:

function play() { 
    var player = document.getElementById("vlc"); 
    player.playlist.play(); 
} 
Смежные вопросы