拦截来自 <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 properties:e.dialog
、e.messageText
、e.messageType
.
似乎没有现成的解决方案,at least not in chrome.dart
。
遗憾的是,我对 Dart 的了解还不够深,无法为您提供解决方案。您需要以某种方式扩展该事件 class,可能会下降到 JS 级别。
This library,即使被放弃,也应该给你一些想法(通过捕获 JS 级事件并在 CustomEvent
的 detail
中填充额外的属性) 属性),虽然实现 DialogController
(不是 JSON-可序列化)会有点棘手,我猜。
我使用此代码从 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 properties:e.dialog
、e.messageText
、e.messageType
.
似乎没有现成的解决方案,at least not in chrome.dart
。
遗憾的是,我对 Dart 的了解还不够深,无法为您提供解决方案。您需要以某种方式扩展该事件 class,可能会下降到 JS 级别。
This library,即使被放弃,也应该给你一些想法(通过捕获 JS 级事件并在 CustomEvent
的 detail
中填充额外的属性) 属性),虽然实现 DialogController
(不是 JSON-可序列化)会有点棘手,我猜。