所以我一直在試圖在互聯網上搜索,如果有類似的東西,但我只是找不到我在找什麼。爲什麼javascript:在webview上導致新頁面?
無論如何,我的問題是當使用webview.loadUrl("javascript: [javascript].value = 'value'")
或類似的東西改變屬性,如innerhtml
,它總是打開返回值到不同的頁面。我不確定爲什麼會這樣做,但在谷歌瀏覽器中,它似乎做了同樣的事情。所有關於如何在WebView上使用JavaScript的教程都使用我用來在頁面上執行JavaScript的相同方法;然而,他們似乎並沒有在新的頁面上打開回應。
我在找的是一種將JavaScript注入頁面而不必加載單獨窗口的方法。
這是我的代碼:
WebView webView = (WebView) findViewById(R.id.carTaxWebView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript: document.getElementById('ctl00_ContentPlaceHolderBody_vin').value = '" + MainPage.getActivityInstance().getCar().getVin() + "';");
}
});
webView.loadUrl("http://onlinemvd.dor.ga.gov/tap/option1.aspx#message");
我希望它一旦用戶加載頁面的VIN碼自動填充。
看起來像是在Android 22上引入的方法,我仍然在21,但我的手機使用Lollipop 5.0.1。後者適用於我的情況,非常感謝! – Muhatashim
在API級別19(KitKat)中添加了「evaluateJavascript」方法。看看你的應用清單中指定了什麼'minimumSdkLevel',如果它看起來像你不能使用它。 –
是的,我用21分鐘,所以這很奇怪。 – Muhatashim