2017-09-16 12 views
1

我有一個帶有iframe元素的組件。我將src屬性設置爲原始URL,用戶可以從那裏導航。我想訂閱用戶導航到的新位置,假設它們位於同一個域中。在非角度解決方案中,他們描述了在iframe上放置onload事件,但是在角度上在iframe上放置(加載)事件似乎僅在初始化時觸發一次,而不是每當iframe中存在導航事件時都如我所願。我做了一個非常醜陋,哈克解決方案:如何在角度應用程序中訂閱iframe位置更改?

Observable 
 
     .interval(200) 
 
     .map(x => this.iframe.nativeElement.contentWindow.location.pathname) 
 
     .distinctUntilChanged() 
 
     .subscribe(url => { 
 
     console.log(url); 
 
     });

但這似乎不理想,至少可以說。有沒有更好的解決方案,不涉及投票?

回答

0

最後,我不需要這樣做,因爲我的iframe中的代碼知道URL何時更改,並且我可以控制它。因此,在url更改事件我可以postMessage到iframe父級。所以這比投票更好,這是真正的實時。

相關問題