Ich möchte eine Webseite in einem WebView öffnen und auf eine Schaltfläche klicken, nachdem die Seite geladen wurde. Dies ist meine aktuelle WebView
Klasse:Javascript funktioniert nicht immer in WebView
public class WebViewFragment extends Fragment {
...
@Override
public void onResume() {
super.onResume();
openUrl();
}
private void openUrl() {
setCookies();
if (urlToOpen != null) {
//tell webview to handle redirects (by default browser launches on redirects)
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
if (getActivity() != null)
((MainActivity) getActivity()).onShowLoading();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (getActivity() != null) {
executeJS();
((MainActivity) getActivity()).onHideLoading();
}
}
});
if (javascriptToExecute != null) {
webview.getSettings().setJavaScriptEnabled(true);
}
webview.loadUrl(urlToOpen);
}
}
private void executeJS() {
System.out.println("executeJS(): " + javascriptToExecute);
webview.loadUrl(javascriptToExecute);
}
}
I "javascript:$('#customer-info-edit').click();"
oder "javascript:document.getElementById('customer-info-edit').click();"
funktionieren beide gut nutzen können.
Aber das Problem ist, dass sie nur einmal funktionieren. Wenn ich das WebView zum ersten Mal öffne, wird der Button angeklickt. Wenn ich jedoch die physische Zurück-Taste drücke und das WebView wieder öffne, wird die Schaltfläche nicht angeklickt. Warum funktioniert Javascript nicht jedes Mal?
In einem Browser löst die Zurück-Schaltfläche ein erneutes Laden aus dem Cache aus, das kein Seitenladen auslöst, sondern es im vorherigen Zustand neu lädt. Ich habe noch nie ein Webview verwendet, also kann ich nicht sagen, ob das das gleiche Problem ist oder nicht, aber dieser Link gibt Ihnen einige Möglichkeiten, dies zu versuchen. Einfach das entsprechende Skript direkt in Ihre Seite einfügen ... http://stackoverflow.com/questions/15791148/startup-javascript-code-is-not-executed-when-user-the-firefox-back-button – Archer