0
此鏈接:http://lexandera.com/category/webview_examples/說,你可以插入JavaScript到由WebView中呈現的網頁如下:的WebView和javascript
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
webview.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('body')[0].style.color = 'red'; " +
"})()");
}
});
我希望把它一步的注入是被重點執行的功能按。
我使用:
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url)
{
webView.loadUrl("javascript:function keyHandler(e) { " +
"document.getElementsByTagName('body')[0].style.color = 'red'; " +
"}");
}
});
和頁面已經寫入,包括document.onkeypress = keyHandler這AFAIK應該鉤住我keyHandler函數出現在頁面上的任何關鍵事件。
問題是,它不工作。我希望它在按下某個鍵時將文本改爲紅色。相反,在我按任意鍵之前,頁面被渲染並且文本變成紅色。
我誤解了這是怎麼一起工作的?
我只是試圖破解一些東西,整個過程就是爲我的僱主在Android WebView中呈現的網頁提供自定義javascript響應。
我不跟隨....你說我得:您發佈的代碼添加到網頁中,之間界定的東西[]中的webView.loadUrl() 然後網頁將自動調用我的JavaScript? – user1126515
你想要做的是動態地將keyHandler(e)函數添加到文檔中,對嗎?這意味着你必須使用loadUrl()調用一個javascript函數,該函數的確如此。看到我修改後的答案。順便說一句:我沒有測試過,這只是給你一個想法,所以如果你複製並經過它並不立即運行,請不要開槍。 – SimonSays
感謝您的澄清。我想我明白了。 我以爲我所要做的就是在loadUrl()中定義腳本。但實際上,我必須定義它並將其附加到頁面上。這是正確的解釋嗎? 我意識到這段代碼沒有保修。我很高興能夠說出這些東西,例如獎金。 – user1126515