私はウェブキオスクを構築しています。コンピューターが起動し、Chrome が起動します。ブラウザーはネットワーク接続が確立される前に読み込まれるため、ユーザーが常に最初に目にするのは接続エラーです。
接続が確立されるのを待ってから、ネットワーク上でホストされているライブ Web ページにページをリダイレクトする、ローカルでホストされている最初の Web ページを作成しようとしています。
私はもう試した:
navigator.onLine
しかし Chrome では、これはブラウザが「オンライン モード」であるかどうかのみをチェックし、実際に接続が機能しているかどうかはチェックしません。その結果、常に接続なしでライブ ページにリダイレクトされ、ユーザーに接続エラーが発生します。
AJAX リクエストを試してみましたが、結果は常に次のようになります。
オリジン
http://localhost
は Access-Control-Allow-Origin によって許可されていません
これを無効にするフラグを指定してChromeを起動することはできません。Chrome のデフォルトのフレーバーでなければなりません。
だから私の質問: この問題に対する実用的な解決策はありますか? Javascript / JQuery / PHP / HTML などの任意の組み合わせを使用したいと考えています。
ローカルでホストされている Web ページのコードは次のとおりです。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Kiosk Splash</title>
<link rel=stylesheet type="text/css" href="jquery/css/ui-lightness/jquery-ui-1.10.2.custom.css">
<script src="jquery/js/jquery-1.9.1.js"></script>
<script src="jquery/js/jquery-ui-1.10.2.custom.js"></script>
</head>
<body>
<div id="dialog" style="text-align:center;">
<p>
<font font face="verdana" size="5">The Kiosk is establishing a connection to the network...</font>
</p>
<div id="progressbar" style="width: 50%; margin: 0 auto;"></div>
</div>
<script>
$( "#dialog" ).dialog({ minWidth: 1000 });
$(".ui-dialog-titlebar-close", this.parentNode).hide();
$( "#progressbar" ).width(800);
$( "#progressbar" ).progressbar({
value: false
});
function connect(){
try{
$.ajax({url:"http://intranet/webpage",
statusCode: {
200: function() {
window.location.replace("http://live/webpage");
}
},
error: function(e){
console.log(e);
setTimeout(connect, 5000);
},
dataType:"json"
});
}catch(e){
console.log(e);
setTimeout(connect, 5000);
}
}
connect();
</script>
</body>
</html>