2017-02-28 116 views
1

我試圖聽取位置更改時的情況,以便我可以向我的服務器發出websocket請求以更新頁面上的狀態。'location-changed'event not fired on user back back按鈕

我聽location-changed事件:如果

app.listen(window, 'location-changed', '_updateScreen'); 

這火我點擊我的網頁上的超鏈接:

<a href="new/location/">My link</a> 

但是,它不火,如果我點擊後退按鈕在我的瀏覽器中...這是一個錯誤還是我做錯了什麼?

<template is="dom-bind" id="app"> 
    <app-location route="{{route}}"></app-location> 
    <app-route route="{{route}}" pattern="/:page" data="{{data}}" tail="{{tail}}"></app-route> 
    <a href="new/location/">My Link</a> 
</template> 
<script type="module"> 
    "use strict"; 

    window.addEventListener('WebComponentsReady', (e) => { 
     app._updateScreen =() => console.log('update'); 
     app.listen(window, 'location-changed', '_updateScreen'); 
    }); 
</script> 

回答

1

當按下按鈕它不是位置更改事件觸發但popstate事件,所以你需要聽兩個事件。檢查鐵位置的例子here line 146-147

+0

在我看來,這應該包括在組件中,並且事件被重定向。無可否認,這回答了我的問題 - 謝謝。 – Cheetah