编程语言
首页 > 编程语言> > Android JavaScript自动完成表单WebView

Android JavaScript自动完成表单WebView

作者:互联网

使用此代码,我可以轻松地将用户名和密码自动粘贴到facebook.com上
目的是为用户选择的每个站点自动粘贴用户名和密码.许多应用程序都可以这样做,但我还没有找到方法.谢谢你的帮助

@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    progressBar.setVisibility(View.GONE);
    String user = "user";
    String pwd = "pass";
    view.loadUrl("javascript:(function(){document.getElementsByName('email')[0].value='"
            + user
            + "';document.getElementsByName('pass')[0].value='"
            + pwd + "';document.getElementsByTagName('form')[0];})()");
}

解决方法:

就像Speditz所说的,并不是每个登录页面都使用相同的name / id元素.

通常,大多数网站都使用type =“ email”或type =“ text”作为用户名,使用type =“ password”进行密码登录,并且您可以进行某些字段存在检查并在加载网页后执行注入

view.loadUrl(
    "javascript:window.onload= (function(){"
    + "var selectElementName = document.querySelector('input[type=\"email\"]');"
    +"if(selectElementName){selectElementName.value =  \"" + user + "\";}"
    +"var selectElementName = document.querySelector('input[type=\"text\"]');"
    +"if(selectElementName){selectElementName.value =  \"" + user + "\";}"
    +"var selectElementpassword = document.querySelector('input[type=\"password\"]');"
    +"if(selectElementpassword){selectElementpassword.value =  \"" + pwd + "\";}"
    +"})();"
);

这是JavaScript之上的纯文本格式,更易于理解:

window.onload= function(){

            var selectElementName = document.querySelector('input[type="email"]');
            if(selectElementName){selectElementName.value =  "username";}

            var selectElementName = document.querySelector('input[type="text"]');
            if(selectElementName){selectElementName.value =  "username";}

            var selectElementpassword = document.querySelector('input[type="password"]');
            if(selectElementpassword){selectElementpassword.value =  "password";}
 };

标签:webview,autofill,android
来源: https://codeday.me/bug/20191109/2011302.html