如何让javascript代码停止脱机运行?

时间:2014-03-29 13:35:01

标签: javascript html5 offline

我正在使用Javascripts在线制作模型查看器。出于安全原因,我不希望用户可以在我网站的任何地方运行它。

我已经开始查封并锁定域名,但如果用户下载整个网站,他们仍然可以离线运行。

那么,如何检测该用户是否正在脱机运行并停止使用Javascript?

感谢。

2 个答案:

答案 0 :(得分:1)

var checkAfter=15; //15 seconds
  setTimeOut(CheckNavigatorState,checkAfter*1000);

function CheckNavigatorState(){
   if(navigator.onLine){
       //  --- Add javascript src OR call js functions here
   }else{       
      //----remove javascript source OR stop functions    
    setTimeOut(CheckNavigatorState,checkAfter*1000);
   }
}

我想提一下,判断浏览器是否脱机并不容易。 一些浏览器供应商表示,当计算机断开与网络的连接时,浏览器处于脱机状态,这并非如此。我们知道您可以访问局域网但不能访问互联网。所以要做一些你可能需要ping一个真正的远程服务器,例如Google

编辑:要使用JavaScript ping,请检查this fiddle(已修改)

答案 1 :(得分:0)

您可以使用window.location属性(http://www.roberthalf.com/technology/External_Sites/content/RHT-NA3/Shared/Images/logos/rht_logo_c.gif)使javascript代码检查其运行的域,但这只会让那些不知道如何修改javascript代码的人在本地运行它。更好的解决方案是使您的代码依赖于服务器上的某些内容,这样每当他们尝试执行某些重要操作时,它会对服务器进行ajax调用,然后可以检查引用者并在未运行时返回错误服务器。