<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>HTML5 - Parte 3: Vídeo de Testando e Depurando JavaScript em Aplicações HTML5</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
        <meta name="description" content="A screencast that demonstrates how to use the IDE to 
              work with the JavaScript editor and debugger in an HTML5 application.">
        <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
    </head>
    <body>

<!--
Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
-->

        <h1>HTML5 - Parte 3: Vídeo de Testando e Depurando JavaScript em Aplicações HTML5</h1>

        <table>
            <tr>
                <td class="valign-top">

                    <p>Este screencast apresenta o suporte fornecido pelo NetBeans IDE para desenvolver aplicações HTML5. O screencast demonstra como usar o IDE para depurar e testar arquivos JavaScript.
                    </p>
                    
                    <p>Autor: Ken Ganfield<br>Hora: 6:54</p>

                    <p><a href="http://bits.netbeans.org/media/html5-jsdebug-screencast.mp4">Download / Veja em tamanho completo</a> (33 MB)</p>


                    
                </td>

                <td width="486" class="valign-top align-center">

                   
                    <script src="/images_www/js/mediaplayer-5.9/jwplayer.js" type="text/javascript"></script>                   
    <div id="player" >
        <center>
	    <div id="flashContent"></div>
        </center>
    </div>
    <script type="text/javascript">
	$(function(){
	    var targetFile='http://bits.netbeans.org/media/html5-jsdebug-screencast.mp4';
		jwplayer('flashContent').setup({
	                'id': 'flashContentId',
	                'width': '530',
	                'height': '340',
	                'autostart': 'true',
	                'file': targetFile,
	                'controlbar':{position:'bottom'},
	                'modes': [
	                      {type: 'html5'},
	                      {type: 'flash', src: '/images_www/js/mediaplayer-5.9/player.swf'},
	                      {type: 'download'}
	                         ]
	           });	
	});
    </script>


                    </td>
            </tr>
            
            <tr>
                <td colspan="2">
                    <p>Para obter mais informações sobre como trabalhar com aplicações HTML5 no NetBeans IDE, assista aos screencasts a seguir.</p>
                    <ul>
                        <li><a href="html5-gettingstarted-screencast.html"> HTML5 - Parte 1: Conceitos Básicos sobre Aplicações HTML5</a></li>
                        <li><a href="html5-css-screencast.html"> HTML5 - Parte 2: Trabalhando com as Folhas de Estilo CSS nas Aplicações HTML5</a></li>
                    </ul>
                    
                    <br style="clear:both;">
                    <div class="feedback-box">
                        <a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Video%20of%20Testing%20and%20Debugging%20JavaScript%20in%20HTML5%20Applications">Enviar Feedback neste Tutorial</a>
                    </div>
                    <br style="clear:both;">
                </td>
            </tr>
        </table>
        <h2>Links relacionados</h2>

        <ul>
            <li>Demonstração:<a href="html5-gettingstarted-screencast.html"> HTML5 - Parte 1: Conceitos Básicos sobre Aplicações HTML5</a></li>
            <li>Demonstração:<a href="html5-css-screencast.html"> HTML5 - Parte 2: Trabalhando com Folhas de Estilo CSS em Aplicações HTML5</a></li>
            <li><a href="../webclient/html5-gettingstarted.html">Conceitos Básicos sobre Aplicações em HTML5 </a></li>
            <li><a href="../webclient/html5-editing-css.html">Trabalhando com Folhas de Estilo de CSS em Aplicações em HTML5</a></li>
            <li><a href="../webclient/html5-js-support.html">Depurando e Testando JavaScript em Aplicações em HTML5</a></li>
            <li><a href="http://wiki.netbeans.org/HTML5">Suporte a HTML5 na página Wiki do NetBeans IDE</a></li>
            <li><a href="../../trails/php.html">Trilha de Aprendizado de PHP e HTML5</a></li>
        </ul>

    </body>
</html>
