2014-03-29 35 views
0

我正在使用Javascript在線製作模型查看器。出於安全原因,我不希望用戶可以在我的網站外的任何地方運行它。如何讓JavaScript代碼停止離線運行?

我已經模擬和鎖定域名,但如果用戶下載整個網站,他們仍然可以離線運行。

那麼,如何檢測用戶正在脫機運行並停止使用Javascript?

謝謝。

+0

我認爲JavaScript是完全下載到設計的客戶端。 –

+0

由於安全原因,Javascript並不是一個好的解決方案,收件人可以隨時禁用Javascript – Ryan

+0

@Nicholas Kyriakides我的javascript已經被商業軟件篡改,因此很難被大多數用戶看到,理解和修改。 –

回答

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

EDITS:使用JavaScript ping通,檢查this fiddle(編輯)

0

您可以讓javascript代碼使用window.location屬性(http://www.roberthalf.com/technology/External_Sites/content/RHT-NA3/Shared/Images/logos/rht_logo_c.gif)檢查它正在運行的域,但這隻會讓那些不知道如何修改javascript代碼的人在本地運行它。更好的解決方案是讓你的代碼依賴於服務器上的某些東西,以便每當他們嘗試做一些重要的事情時,就會對服務器進行一次ajax調用,然後可以檢查引用者,並在他們沒有運行時返回一個錯誤服務器。