我需要處理QWebView(QWebPage)中複選框的選中狀態。Qt WebKit手柄複選框檢查
更多細節:
有在HTML一些複選框。我們希望在檢查其中一些應用程序時對其進行更改。要做到這一點,我們需要知道它何時發生變化。
怎麼辦?
我需要處理QWebView(QWebPage)中複選框的選中狀態。Qt WebKit手柄複選框檢查
更多細節:
有在HTML一些複選框。我們希望在檢查其中一些應用程序時對其進行更改。要做到這一點,我們需要知道它何時發生變化。
怎麼辦?
這並不容易。這是一個解決方法,它不完善但實用。
創建QObject
的子類,例如, Notifier
。這將是你從網絡世界到本土世界的橋。無論您希望如果複選框被選中時所做的更改都應該直接放在此處,或者您可以通過信號/插槽機制將其轉發到更遠的鏈中。
使用addToJavaScriptWindowObject將此Notifier
對象的實例注入到您的網頁中。它將被附加到全局window
對象。現在,使用DOM的addEventListener將新偵聽器添加到該複選框,偵聽器除了調用橋的回調函數外什麼也不做。 window.notifier.doSomething()
。可以通過使用evaluateJavaScript執行小型JavaScript代碼來執行此監聽器調整。
這個技巧是可行的,因爲QtWebKit internal bridge理解一個QObject實例(雖然自省),並使其屬性和插槽可以從JavaScript世界訪問。
謝謝。我已經在KDE Blogs上閱讀過關於它的博客文章;) –