拦截来自 <webview> 的对话框并阅读内容

Intercept dialog from <webview> and read the contents

我使用此代码从 webview 拦截对话框,但我看不到内容或与之交互:

  Element webview= querySelector("#webview");
  Map<String,String> map=new Map();
  map["src"]=urlWebView+user;
  webview.attributes.addAll(map);
  querySelector("#webview_cont").style.visibility="visible";
  window.addEventListener("dialog",(Event e){ //Use window or webview returns the same result
        e.preventDefault();
        ... //What should I do here ??
    } );

有什么解决办法吗? 谢谢

编辑

调试:

Open issue: https://code.google.com/p/dart/issues/detail?id=23556

问题肯定出在你对 Dart 的使用 Event class

它根本不支持 Chrome 添加到事件中的 extra propertiese.dialoge.messageTexte.messageType.

似乎没有现成的解决方案,at least not in chrome.dart

遗憾的是,我对 Dart 的了解还不够深,无法为您提供解决方案。您需要以某种方式扩展该事件 class,可能会下降到 JS 级别。

This library,即使被放弃,也应该给你一些想法(通过捕获 JS 级事件并在 CustomEventdetail 中填充额外的属性) 属性),虽然实现 DialogController(不是 JSON-可序列化)会有点棘手,我猜。