Formulario de imagen de envío automático cuando Internet está disponible

Estoy tratando de crear una aplicación HTML5 sin conexión que envíe un formulario que contenga una imagen y una entrada de texto para una dirección de correo electrónico. cuando hay una conexión a internet disponible

Esto es lo que he probado:

<body>
    <script type='text/javascript'>
    window.onload = function () {
                function submit() {
        setInterval(function () {
            if (navigator.onLine) {
                //if internet is avaiable do:
                document.getElementById("upload").submit();
            }else {
                //if no internet
                var theDiv = document.getElementById("message");
                                    var content = document.createTextNode("No internet");
                                    theDiv.appendChild(content);
            }
        }, 1000);
    }
            }
    </script>
    <form action="post.php" method="post" enctype="multipart/form-data" id="upload">
    <input type="file" name="uploaded" accept="image/*" capture><br>
    <p>Skriv inn din epost: <input type="text" name="email"></p>
    <input type="submit" value="Send ditt bilde!" name="sendimg" onclick="this.value='Submitting ..';this.disabled='disabled'; submit();">
    <div class="message"></div>

¿Alguien tiene alguna sugerencia? Gracias :)

preguntado el 03 de diciembre de 13 a las 13:12

¿Ha intentado adjuntar el oyente de otra manera que no sea onclick? -

Internet siempre está disponible. Tal vez la conexión a Internet podría no serlo. -

3 Respuestas

Hay dos formas de verificar esto

Esta solución requiere jQuery

$.ajaxSetup({
    timeout: 1, // Microseconds, for the laughs.  Guaranteed timeout.
    error: function(request, status, maybe_an_exception_object) {
        if(status == 'timeout')
            alert("Internet connection is down!");
    }
});

Y

window.navigator.onLine -- it will be false if the user is offline.

Debe usar lo anterior en su código con algunos ajustes según el requisito.

Respondido el 03 de diciembre de 13 a las 14:12

Milisegundos, creo. - McCainz

Lo siento, pero todavía no puedo comentar. esto funcionara?

<script type='text/javascript'>
window.onload = function () {
            function submit() {
    setInterval(function () {
        if (window.navigator.onLine == "true") {
            //if internet is avaiable do:
            document.getElementById("upload").submit();
        }else {
            //if no internet
            var theDiv = document.getElementById("message");
                                var content = document.createTextNode("No internet");
                                theDiv.appendChild(content);
        }
    }, 1000);
}
        }
</script>

Respondido el 03 de diciembre de 13 a las 14:12

En lugar de verificar continuamente la conexión a Internet, puede usar eventos en línea y fuera de línea. Para referencia ver esto https://developer.mozilla.org/en/docs/Online_and_offline_events. Si el usuario está desconectado, guarde los datos en el almacenamiento local y luego vuelva a enviar los datos una vez que se detecte nuevamente el evento en línea.

Respondido el 04 de diciembre de 13 a las 08:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.