Android webview:" Uncaught TypeError:无法读取属性'类型'未定义"

时间:2017-10-12 21:59:01

标签: javascript java android webview

我正在编写一个应用程序,应该将地址放入本地投放网站的搜索字段中,以便我可以获取可用的餐馆。为此,我尝试使用webview中的一些javascript来填充搜索但是在提交表单时会出现以下错误: I / chromium:[INFO:CONSOLE(12)]" Uncaught TypeError:无法读取属性'类型'未定义",来源:https://deliveroo.fr/fr/(12)

如果我自己单击按钮,错误也会重复。如果我手动填写地址,该网站似乎在同一webview中正常工作。任何帮助深表感谢。我已经尝试过从类似问题中找到的所有内容,例如激活DomStorage或清理现金。

我的代码:

final WebView web = webView;
        web.clearCache(true);
        web.clearHistory();
        web.getSettings().setSaveFormData(false);
        web.clearFormData();
        web.getSettings().setJavaScriptEnabled(true);
        web.getSettings().setDomStorageEnabled(true);

        web.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageFinished(WebView view, String url)
            {super.onPageFinished(web, url);
final String js = "javascript:" + "document.getElementsByName('address_search')[0].value = '" + address + "';" + "document.getElementById('find_food').click();";

                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                        view.evaluateJavascript(js,null);
                    }else {view.loadUrl(js);
                    }

            }
        });

        web.loadUrl("https://deliveroo.fr/fr/");

网站代码:

<div class="landing-index-page-search__container" data-reactid=".1d1c1t7z20w.2.0.0.1.1">
    <h1 class="landing-index-page-search--main-title" data-reactid=".1d1c1t7z20w.2.0.0.1.1.0">Vos restaurants préférés, livrés en moins de 30 minutes.</h1>
    <form method="get" action="" class="landing-index-page-search--form landing-index-page-search--non-postcode" data-reactid=".1d1c1t7z20w.2.0.0.1.1.2">
    <span data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.0"></span>
    <div data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1">
    <div class="landing-index-page-search--input" data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1.1">
    <div class="landing-index-page-search--input address-search" data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1.1.1">
    <input name="address_search" type="text" tabindex="-1" class="" placeholder="Saisissez votre adresse" value=" " data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1.1.1.0"/></div>
    <input id="find_food" type="submit" value="Voir les restaurants" class="button" data-reactid=".1d1c1t7z20w.2.0.0.1.1.2.1.1.2"/>

0 个答案:

没有答案