2015-05-31 46 views
1

我用這個代碼攔截來自網頁視圖的對話,但我看不到的內容或與它交互:攔截對話框,並讀取其中的內容

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 ?? 
    }); 

任何解決方案? 感謝

編輯

調試:

Debug

開放問題:https://code.google.com/p/dart/issues/detail?id=23556

+0

您是否閱讀過文檔?我建議你[再次做](https://developer.chrome.com/apps/tags/webview#event-dialog)。 – Xan

+0

是的,但該事件不會返回有關對話框或文本類型的任何信息。 – MalumaDev

+0

嘗試將監聽器附加到webview元素,而不是'window' – Xan

回答

1

問題肯定出在你達特Event class的使用。

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

它似乎並沒有一個現成的解決方案,at least not in chrome.dart

不幸的是,我不知道飛鏢足夠好,給你一個解決方案。您需要以某種方式擴展該事件類,可能會降低到JS級別。

This library,即使放棄了,應該給你如何做到這一點的想法(通過捕捉JS級事件和CustomEventdetail財產肥了額外的屬性),但實施DialogController(這是不是JSON序列化)我會猜測會有點棘手。

+0

code.google.com上的開放問題 – MalumaDev

+0

爲什麼?如果有的話,它應該在['chrome.dart'問題跟蹤器](https://github.com/dart-gde/chrome.dart/issues/)中。儘管如此,在''中有一個支持_lot_的東西,就像'WebRequestEventInterface' – Xan

+0

現在我有點想學習Dart來幫助那個.. – Xan