Dartpad html - 如何删除 re-运行 上的事件侦听器?

Dartpad html - how to remove event listeners on re-run?

在带有 html (https://dartpad.dev/html) 的 Dartpad 中,我正在试验以下代码片段:

import 'dart:html';

void main() {
  final header = querySelector('#header');
  header?.text = "Hello, World!";
  
  var streamobject = document.onSelectionChange.listen(handleSelectionChange);
  
  // streamobject.cancel() when re-run
  
}

void handleSelectionChange(Event e) {
  // do sth with range
}

但是,当我再次 运行 这段代码片段时,来自前一个 运行 的事件侦听器并没有分离。不幸的是,似乎无法访问 Dartpad 中的 运行 按钮并执行如下操作:

ButtonElement btn = querySelector('#run-button');
btn.onClick.listen((event) => streamobject.cancel());

有没有办法在 dartpad 中重新执行时从文档中删除所有事件侦听器?

页面刷新清理缓存完成工作(Cmd+Shift+R on Mac,或 Ctrl+F5 在 Windows).