覆盖网页中现有的Javascript函数
我在网络视图中显示一个网页(不是我的)。有一个文本区,我需要在其中放置一些文本覆盖网页中现有的Javascript函数,java,javascript,webview,textarea,Java,Javascript,Webview,Textarea,我在网络视图中显示一个网页(不是我的)。有一个文本区,我需要在其中放置一些文本 <TEXTAREA NAME="app1" ROWS="3" style="width:95%" TABINDEX="1" onKeyDown="javascript:return gerTouch(event);" onKeyUp="javascript:verif(app1,300,true);" onBlur="javascript:effacer();">TEXT TO CHANGE</T
<TEXTAREA NAME="app1" ROWS="3" style="width:95%" TABINDEX="1"
onKeyDown="javascript:return gerTouch(event);"
onKeyUp="javascript:verif(app1,300,true);"
onBlur="javascript:effacer();">TEXT TO CHANGE</TEXTAREA>
textarea的名称在每次加载时都会更改,我无法用其他方式访问html textarea。
欢迎任何其他建议:-)(我的目标是:在webview的文本区域中输入一个值:)您可以通过在webview加载后运行类似的操作来更改verif函数(在WebViewClient的onPageFinished()内调用它):
我把它放在:webview1.loadUrl(“javascript:window.verif=function(strl,I,b){alert(strl);}”);在我的onPageFinished中,但没有显示。@StéphaneGROSSMANN JS
alert
函数在Android WebView中默认不起任何作用,您需要在WebChromeClient
中实现方法onJsAlert
,以便能够处理警报(例如,使用您的消息创建一个AlertDialog)。好的,谢谢,但是webview1.loadUrl(“javascript:window.verif=function(strl,i,b){strl.value='test';}”);两者都不起作用。@StéphaneGROSSMANN可能很快就会被调用。您可以在webview对象所在的处理程序字段中延迟它,并执行类似以下操作:Handler.post(new Runnable(){public void run(){webview.loadUrl(“javascript:”);}}”
在您的WebViewClient.onPageFinished中
我尝试在Chromes的控制台中用window.verif=function(champTA、nbCarac、deuxLignes){};重写函数“verif”,但旧的函数始终有效(如果字符太多,则删除文本)
webview1.addJavascriptInterface(new Object()
{
public void verif(String strl,int i,boolean b)
{
//Some code ?
}
}, "ok");
webview.loadUrl("javascript:window.verif = function(strl,i,b){/*some code*/}");