如何用Dart观察window.location的变化?

Joh*_*tål 2 dart

我想用Dart观察window.location的变化,但还没有找到如何做到这一点.是否有可以使用的事件或其他方式来执行此操作?

Nat*_*ial 6

我猜你想要哈希值发生变化,因为如果window.location被更改,它会加载一个新页面.试试这个:

import "dart:html";

window.onHashChange.listen((HashChangeEvent e) {
  //Do stuff
});
window.onPopState.listen((PopStateEvent e) {
  //Do stuff
});
Run Code Online (Sandbox Code Playgroud)

PopStateEvent API:http://api.dartlang.org/docs/releases/latest/dart_html/PopStateEvent.html

每当活动历史记录条目在同一文档的两个历史记录条目之间发生更改时,就会将popstate事件分派到窗口.如果正在激活的历史记录条目是通过调用history.pushState()创建的,或者受到对history.replaceState()的调用的影响,则popstate事件的state属性包含历史记录条目的状态对象的副本.

https://developer.mozilla.org/en-US/docs/Web/API/Window.onpopstate