对于loadUrl上的javascript getElementById,Android WebView始终返回null

对于loadUrl上的javascript getElementById,Android WebView始终返回null,第1张

概述我尝试从android客户端应用程序填写webview中的表单.我知道它应该如何工作,但getElementById总是为我返回null.我在不同的网站上试过.以下是www.google.com的示例.MyWebViewview=newMyWebView(this);view.getSettings().setJavaScriptEnabled(true);view.loadUrl("http://

我尝试从android客户端应用程序填写webvIEw中的表单.我知道它应该如何工作,但getElementByID总是为我返回null.我在不同的网站上试过.

以下是www.Google.com的示例.

MyWebVIEw vIEw = new MyWebVIEw(this);vIEw.getSettings().setJavaScriptEnabled(true);vIEw.loadUrl("http://www.Google.com");vIEw.setWebVIEwClIEnt(new WebVIEwClIEnt() {    @OverrIDe    public boolean shouldOverrIDeUrlLoading(WebVIEw v, String url) {        v.loadUrl(url);        return true;    }    @OverrIDe    public voID onPageFinished(WebVIEw v, String url) {        v.loadUrl("JavaScript:document.getElementByID('mib').value = 'aaa';");                  }});setContentVIEw(vIEw);

和MyWebVIEw类(仅供参考).

class MyWebVIEw extends WebVIEw {    Context context;    public MyWebVIEw(Context context) {        super(context);        this.context = context;    }    @OverrIDe    public boolean ontouchEvent(MotionEvent event) {        // do some multi touch stuff        return true;    }}

我总是得到错误:

09-01 04:35:26.453: I/chromium(2962): [INFO:CONSolE(1)] "Uncaught TypeError: Cannot set property 'value' of null", source: https://www.Google.de/?gws_rd=ssl (1)

但元素“mib”应该在网站上.使用桌面浏览器(带有移动模拟的Chrome)一切正常.我不知道,这里出了什么问题.

谢谢你的提示!

编辑:
我取得了一些进展.关于this站点,我还需要setDomStorageEnabled(true).
不,我可以找到DOM对象并设置值,但是我没有显示修改后的站点,而是获得了一个只有我设置的值的新空白.例如.一个白色的空白网站,文字“aaa”.

解决方法:

最后我找到了解决方案!这是一个非常奇怪的行为.

首先,您需要在webvIEw上指定setDomStorageEnabled(true).否则DOM不起作用.我想知道为什么没有教程给出一个暗示.但是没问题.

myvIEw.getSettings().setDomStorageEnabled(true);

在此之后,我结束了一个白色的空白页面,只有我设置的值.奇怪的是,JavaScript:document.getElementByID(‘myfIEld’).value =’aaa’;返回一个值.就是我设定的那个.因此创建了一个仅包含字符串“aaa”的新空白页面.

我通过修改JavaScript来抛弃返回结果来解决它:

JavaScript:var x = document.getElementByID('myfIEld').value = 'aaa';

瞧.这是工作.

总结

以上是内存溢出为你收集整理的对于loadUrl上的javascript getElementById,Android WebView始终返回null全部内容,希望文章能够帮你解决对于loadUrl上的javascript getElementById,Android WebView始终返回null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103158.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存