2016-08-04 8 views
2

IE 7 브라우저가 내장 된 앱이 있습니다. 정적 HTML 페이지에서 테스트해야합니다. 자바 스크립트는 사용자가 인터넷에 연결되어 있는지 여부에 관계없이 괜찮습니다.IE7 기반 브라우저가 온라인 상태인지 테스트하는 방법

Offline.js 비록 자바 스크립트가 지원되지 않기 때문에 훌륭한 라이브러리는 여기에서 작동하지 않습니다.

window.navigator.onLine object.property가 없습니다.

meta 리디렉션을 사용하는 것은 인터넷에 액세스 할 수 없으면 사용자를 현재 페이지에 남겨두기 때문에 리디렉션 옵션이 아닙니다. 논리는 다음과 같아야합니다.

function UserIsOnlineTest(){ 
// needed code goes here 
// boolean return value 
} 

if (UserIsOnlineTest()) { 
    window.location.replace('http://theOnlineSite.com/'); 
} 

생각 하시겠습니까?


내가 함께 결국 전체 솔루션 (@RobM에 따라. 대답)

(function(){ 

    var testImage= 'http://the.site.com/testimage.png'; 
    var image = new Image(); 
    var online = true; 
    image.src = testImage; 
    image.onerror = function() { 
     online = false; 
    } 

    setTimeout(function() { 
     if (online) { 
      window.location.replace('http://the.site.com/'); 
     },1000); 
    } 

}()); 

이 더욱 완성, 나는 오류에 대한 테스트에 지연을 추가 할 필요가 있었다. 이것이 파일에서 실제로 유일한 코드 였기 때문에 이미지가 다운로드되기 전에 실제로 온라인 변수를 테스트하고있었습니다. 당신은 당신이 온라인해야 알 이미지가있는 경우

+0

는'navigator.onLine' 아닌가? . 대문자를 주목하십시오 L –

+0

또한 중복이 가능합니다 : http://stackoverflow.com/questions/189430/detect-that-the-internet-connection-is-offline –

+0

'window.navigator.online'은 여전히 ​​사용할 수 없으며 이것은 아닙니다. 중복, 나는 명시 적으로 IE7에 대한 답변이 필요합니다. – THBBFT

답변

1

, 당신은 이미지 태그를 만들 수 있습니다 및 onerror은 사용자가 오프라인임을 표시 한 :

var googleLogo = 'https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png'; 
var image = new Image(); 
image.src = googleLogo; 
image.onerror = function() { 
    // user is offline 
} 
+0

* 온라인 상태 여야하는 항목에 XHR 요청을하는 것이 더 효율적이지 않습니까? –

+1

IE7 내장 컨트롤에서 xhr 요청을 할 수 없습니다. 스크립트에 액세스 할 수 없다는 오류가 표시됩니다. – THBBFT

+0

"효율적인"어떤 방식으로? XHR 요청보다 이미지 요청에 오버 헤드가 적다는 것을 상상할 수는 있지만 (아무 것도 백업하지 않아도됩니다.) –