【问题标题】:Auto submit image form when internet is avaiable互联网可用时自动提交图像表单
【发布时间】:2013-12-03 13:56:54
【问题描述】:

我正在尝试制作一个离线 HTML5 应用程序,该应用程序提交包含电子邮件地址的图像和文本输入的表单,当互联网连接可用时

这是我尝试过的:

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

有人有什么建议吗?谢谢:)

【问题讨论】:

  • 您是否尝试过以onclick以外的其他方式附加监听器?
  • 互联网始终可用。也许互联网连接可能没有。

标签: javascript html forms offline


【解决方案1】:

你有两种方法来检查这个

此解决方案需要 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!");
    }
});

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

您需要在代码中使用上述内容,并根据需要进行一些调整。

【讨论】:

  • 我相信毫秒。
【解决方案2】:

对不起,我还不能发表评论。这行得通吗?

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

【讨论】:

    【解决方案3】:

    您可以使用在线和离线事件,而不是持续检查互联网连接。如需参考,请参阅此https://developer.mozilla.org/en/docs/Online_and_offline_events。如果用户离线,将数据保存在本地存储中,一旦再次检测到在线事件,重新发送数据。

    【讨论】:

      猜你喜欢
      • 2017-03-05
      • 2019-09-24
      • 2012-02-10
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多