JavaScript注入到web视图 [英] Javascript injection into webview

查看:116
本文介绍了JavaScript注入到web视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道它的存在了很多关于这问题,但我不明白为什么我的下面code不工作了。

下面是我的code:

 私人无效的init(){
    webview.setWebViewClient(新FormWebViewClient());
    webview.postUrl(URL,EncodingUtils.getBytes(数据,BASE64));
}私有类FormWebViewClient扩展WebViewClient {
        @覆盖
        公共无效onPageStarted(的WebView视图,字符串URL,位图图标){
            super.onPageStarted(查看,网址,图标);
            // progressBar.setVisibility(View.VISIBLE);
        }        @覆盖
        公共布尔shouldOverrideUrlLoading(的WebView视图,字符串URL){
            LOGD(TAG,URL:+网址);
            view.loadUrl(URL);
            返回true;
        }        @覆盖
        公共无效onPageFinished(的WebView视图,字符串URL){
            view.loadUrl(JavaScript的:+document.getElementsByClassName('my_class_name')[0]。价值='+ myvalue的+';+
    }
}

我原来的WebView是overrided并只显示 myvalue的页面,而不是大量的信息的。

如果有人知道我为什么有这种行为?

THX


编辑:

和HTML

的一部分

 <输入类型=文字大小=20MAXLENGTH =19自动完成=关闭NAME =CARD_NUMBERID =CARD_NUMBER级=my_class_name值=>


解决方案

最后,我找到了答案:

我要补充无效(0); 在这样的JavaScript指令的结尾:

  view.loadUrl(JavaScript的:+document.getElementsByClassName('my_class_name')[0] .value的='+ myvalue的+;无效(0); )

THX对您有所帮助。

I know it exists a lot of questions about that but i don't understand why my following code does not work anymore

Here is my code :

private void init() {
    webview.setWebViewClient(new FormWebViewClient());
    webview.postUrl(url, EncodingUtils.getBytes(data, "BASE64"));
}

private class FormWebViewClient extends WebViewClient {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            // progressBar.setVisibility(View.VISIBLE);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            LOGD(TAG, "Url : " + url);
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            view.loadUrl("javascript:" +"document.getElementsByClassName('my_class_name')[0].value = '" + myValue + "';" +
    }
}

My original webview is overrided and it displays only myValue in the page instead of plenty of informations.

If anybody knows why i have this behavior ...

Thx


EDIT :

and the part of html

<input type="text" size="20" maxlength="19" autocomplete="off" name="CARD_NUMBER" id="CARD_NUMBER" class="my_class_name" value="">

解决方案

Finally, i've found the answer :

I have to add void(0); at the end of javascript instruction like this :

view.loadUrl("javascript:" +"document.getElementsByClassName('my_class_name')[0].value = '" + myValue + "';void(0);")

Thx for your help.

这篇关于JavaScript注入到web视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆