jQuery Mobile: cómo comprobar si el navegador admite eventos de jQuery Mobile

Resuelto Greg asked hace 13 años • 1 respuestas

Actualmente estoy usando el evento de inicialización de página "pagebeforecreate" de jQuery Mobile para cargar contenido en mi página html. Los eventos de jQuery Mobile se analizan aquí: http://jquerymobile.com/demos/1.0a2/#docs/api/events.html . Después de que el contenido se carga sincrónicamente y se agrega al cuerpo, jQuery Mobile formatea la página.

Aquí está mi código que funciona en navegadores compatibles con jQuery Mobile:

<!DOCTYPE html>
<html>
<head>
    <title>jQuery Mobile Test</title>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.css" />
    <script src="http://code.jquery.com/jquery-1.4.4.min.js"></script>

    <script>
    $('body').live('pagebeforecreate',function(event){

        var ajaxContent = "";

        $.ajax({
            async: false,
            type: "GET",
            url: "test.xml",
            dataType: "xml",
            success: function(xml) { 

                $(xml).find('item').each(function()
                {
                    ajaxContent += '<li><a href="'+$(this).find('link').text()+'">'+$(this).find('title').text()+'</a></li>';
                });
                //alert(ajaxContent);
                $('#menu').append(ajaxContent);
            }
        });
    });
    </script>

    <script src="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.js"></script>
</head>
<body>
<noscript>You must have JavaScript enabled to view the content on this website.</noscript>
<div data-role="page">

    <div data-role="header">
        <h1>jQuery Mobile</h1>
    </div>

    <div data-role="content">

        <ul data-role="listview" id="menu">

            <li><a href="#">Static</a></li>

        </ul>

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

y aquí está el archivo XML:

<?xml version="1.0" encoding="UTF-8"?>
<menu>
<item>
<title>Awesome Link from XML 1</title>
<link>http://www.google.com</link>
</item>
<item>
<title>Awesome Link from XML 2</title>
<link>http://www.gmail.com</link>
</item>
</menu>

¿Cómo puedo detectar si el navegador admite el evento jQuery Mobile "pagebeforecreate"? ¿O hay alguna forma de detectar si se ejecutó este evento? Si este evento nunca se ejecuta, necesito cargar el XML con otra función. Aunque IE 8 no es compatible con jQuery Mobile, todavía me gustaría que procesara el archivo XML y mostrara los enlaces.

Greg avatar Jan 29 '11 04:01 Greg
Aceptado

http://jquerymobile.com/gbs/

jQuery Mobile está trabajando para admitir todos los navegadores de grado A. Esto significa que realizaremos pruebas activas con esos navegadores y nos aseguraremos de que funcionen lo mejor posible. Los navegadores recibirán el CSS y JavaScript completos de jQuery Mobile (aunque el diseño final puede ser una versión elegantemente degradada de todas las capacidades, dependiendo del navegador).

Para comprobar si un navegador está definido como grado A, puede llamar

$.mobile.gradeA()

No tengo IE para comprobar qué ofrece esto, pero puedes intentarlo.

David Pean avatar Jan 29 '2011 05:01 David Pean