ネットワーク ステータスのイベント リスナーを含むページがあります。ネットワークが「オフライン」の場合、クロス ドメイン リンクを無効にしてオフライン モードに移行したいと考えています。を使用しようとしていまし.preventDefault()
たが、アプリがオンラインに戻ったら、リンクを再度有効にする必要があります。
イベントリスナー
//check network status
if(!navigator.onLine) {
offlineLinks(); //Offline mode function
}
//add event listeners for network status
window.addEventListener('offline', function(e) {
offlineLinks(); //Offline mode function
}, false);
window.addEventListener('online', function(e) {
//need to re-enable links/Online mode
}, false);
window.addEventListener('error', function(e) {
alert('Error fetching manifest: there is a good chance we are offline.');
offlineLinks(); //Offline mode function
});
「デリンク」機能
function offlineLinks() {
$('a[href^="http"]').click(function(e) {
e.preventDefault();
$('#offline-dialog').dialog({
modal: true,
buttons: {
Ok: function() {
$(this).dialog('close');
}
}
});
});
}
ページに多数のリンクがある場合に遅延を引き起こさないスケーラブルなソリューションを探しています。呼び出しを元に戻す簡単な解決策、.preventDefault()
またはこのタスクを達成するためのより良い方法はありますか?
可能な解決策
私の最初の考えは、href値の配列を保存してから削除/追加することでした。を使用して HTML5 ストレージをいじっていwebdb
ますが、データベースを作成して、onclick で hrefs を動的にプルできます...ただし、これが最適なソリューションであるかどうかはわかりません。