オフラインの最初のアプリの基本についてのチュートリアルを進めており、JSDOM with Tapeを使用してコードをテストしています。 私たちのコードでは、イベントリスナーをウィンドウに付けて「オンライン」/「オフライン」イベントをリッスンすることで、テキストノードが「オンライン」から「オフライン」に変わるようにDOMを更新します。navigator.onLine
オンライン/オフラインにテキストを初期化します。これと同じように:JSDOMでオンライン/オフラインにすること
// get the online status element from the DOM
var onlineStatusDom = document.querySelector('.online-status');
// navigator.onLine will be true when online and false when offline. We update the text in the online status element in the dom to reflect the online status from navigator.onLine
if (navigator.onLine) {
onlineStatusDom.innerText = 'online';
} else {
onlineStatusDom.innerText = 'offline';
}
// we use the 'online' and 'offline' events to update the online/offline notification to the user
// in IE8 the offline/online events exist on document.body rather than window, so make sure to reflect that in your code!
window.addEventListener('offline', function(e) {
onlineStatusDom.innerText = 'offline';
});
window.addEventListener('online', function(e) {
onlineStatusDom.innerText = 'online';
});
私たちは、オフラインイベントが発生すると、当社のテキストノードの更新をオフライン時には「オフライン」と言っていることをテストするためにJSDOMを使用したいです。
JSDOMの属性はwindow.navigator.onLine
で、but it is read onlyです。変更する方法が見つからない(常にtrue)。それはonline/offline events as wellを持っているようですが、私はそれらを発射する方法を見ることができません。
ノードでテストするときに、オンライン/オフラインになる方法をシミュレーションするにはどうすればよいですか?
をこれは私がやってしまったものに非常によく似ています! クラスまたはゲッターを使用しませんでしたが、Object.definePropertyでオーバーライドし、独自のオフライン/オンラインイベントを作成しました。乾杯! –