【问题标题】:I need some help detecting if a browser has access to the internet [duplicate]我需要一些帮助来检测浏览器是否可以访问互联网 [重复]
【发布时间】:2011-09-30 18:07:34
【问题描述】:

可能重复:
Check if Internet Connection Exists with Javascript?

我一直在编写一份通过 CD 发送给客户的手册。我公司的所有者要求将手册分成许多小节,分别为 .doc 和 .docx 文件。本手册目录为 HTML 页面,光盘放入电脑后自动运行。

我可以相当确定这台计算机是 Windows 计算机,但仅此而已。我目前的想法是使用this script 来利用google 显示word 文件,但前提是计算机实际连接到互联网。这样我就不必依赖拥有特定 word 版本(或安装了兼容包)的客户。

从我所做的研究来看,依靠计算机正确识别应该用word打开指向word文档的链接是有问题的,必须在用户端解决。

【问题讨论】:

  • 我相信pdf 会更适合这个。
  • 你不能把文件转换成 pdf / odf 吗?
  • 如果你真的想在除了浏览器之外的最终用户端显示没有软件要求的文档,那么内容应该都是CD上的HTML。您甚至可以为用户提供 Word、PDF 或 HTML 的选择。
  • 请记住,如果您使用 Google Docs Viewer,那么您也同意他们的 TOS - docs.google.com/viewer/TOS?hl=en
  • 我喜欢使用 PDF 文件。或者在我这边将 doc 文件转换为 html。但是签我薪水的那个人说他们是word docs……所以他们必须是word docs。

标签: javascript ms-word


【解决方案1】:

【讨论】:

  • 正如文章所说,它不是很可靠。
【解决方案2】:
【解决方案3】:
GM_xmlhttpRequest({
  method: "GET",
  url: "http://www.google.com/",
  onload: function(response) {
    if(response.responseText != null) { 
       alert("OK");
    } else { 
      alert("not connected");
    }
  }
});
  • 第二种选择

    var HaveConnection = navigator.onLine;

【讨论】:

    【解决方案4】:

    您可以尝试向可靠站点发出 ajax 请求。

    // THIS IS OUR PAGE LOADER EVENT!
    window.onload = function() { 
        testConnection();
    };
    
    function testConnection(){
        var xmlhttp;
    
        if (window.XMLHttpRequest){
            xmlhttp=new XMLHttpRequest();
        } else {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    
        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState==4 && xmlhttp.status==200){
                alert(xmlhttp.responseText);
            } else if (xmlhttp.readyState==4){
                alert("NO INTERNET DETECTED!");
            }
        }
    
        xmlhttp.open("GET","http://www.w3schools.com/ajax/ajax_info.txt",true);
        xmlhttp.send();
    }
    

    现在您将不得不尝试使用它来使用响应,因为它是异步的,但这将用于测试连接。

    【讨论】:

    • AJAX 正在处理外部域?
    • 如果是本地 html 文件,Internet explorer 会显示。我没有在 Firefox 或 chrome 中进行测试。我不确定它为什么会起作用,但你可以自己测试一下。但同样它必须是使用 Internet Explorer 打开的本地文件。
    • 这里稍微解释一下:msdn.microsoft.com/en-us/library/ms537505%28v=vs.85%29.aspx 在跨域和区域策略部分下有一个表格,显示了允许的内容。
    • 在旧版本的 Internet Explorer 中是正常的。但在 IE 6.0 版本之后,出于安全原因,使用 ajax 调用外部 url 被阻止。但奇怪的是,这在 Firefox Mozilla/5.0 中运行良好,我不知道,是新功能吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    相关资源
    最近更新 更多