2015-09-16 22 views
5

Wiem, że to pytanie jest bardzo powszechne i może być rozwiązane za pomocą here - JS lub JQuery oraz here - jak uruchomić go na Androidzie. No to metody działają dobrze, ale kiedy my nazywamy:Dynamicznie zmieniaj element HTML w Androidzie WebView

`myWebView.loadUrl("javascript:document.body.innerHTML = document.body.innerHTML.replace('link1', 'link2')");` 

obraz zmienia się z link1 link2, obraz się ładuje, ale strona została wznowiona, więc jeśli jestem w końcu jadę na początku ... może Po prostu zmieniam link1 na link2 w czasie rzeczywistym, aby nie przeładować strony tak jak w prawdziwej przeglądarce?

i Próbowałem również ustawienie id w moim pliku html, takich jak:

<img src="https://link1.jpg" id="dm5kode"/> 

i uruchomić na Androidzie:

myWebView.loadUrl("javascript:document.getElementById('dm5kode').src = 'link2'");

tu nie rozumiem nic, tylko pusty ekran ..

+0

Jak rozwiązać ten problem? czy możesz dostać to, czego chcesz. Mam ten sam problem: –

+0

lok o odpowiedzi @ arun - działa – johny

Odpowiedz

9

To nie jest ponowne ładowanie strony.

"javascript:(
     function() 
     { 
      document.body.innerHTML = document.body.innerHTML.replace('link1', 'link2') 
     })()" 

przykład:

WebView wb; 
    wb = (WebView) findViewById(R.id.webView1); 
    wb.loadUrl("file:///android_asset/web1.html"); 
    wb.getSettings().setJavaScriptEnabled(true); 

    wb.setWebViewClient(new WebViewClient() { 

     @Override 
     public void onPageFinished(WebView web, String url) { 
      // TODO Auto-generated method stub 
      String uname = "[email protected]"; 
      String pass = "******"; 
      /* 
      * web.loadUrl(
      * "javascript:(function(){document.getElementById('email').value='" 
      * + uname + 
      * "';document.getElementById('pass').value='" + 
      * pass + "';})()"); 
      */ 
      String link1 = "https://www.gstatic.com/webp/gallery3/1.png"; 
      String link2 = "https://www.gstatic.com/webp/gallery3/2.png"; 
      web.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('" + link1+"', '" + link2+"')})()"); 
     } 
    }); 

web1.html

<!DOCTYPE html> 
    <html> 
    <head> 
     <title>dynamic Image</title> 
    </head> 

    <body> 

<img src="https://www.gstatic.com/webp/gallery3/1.png" id="dm5kode"/> 

</body> 
</html> 
+0

Niesamowite! +1. Czy jest jakiś wzmiankę o hackowaniu? – Stan

+0

Doskonała odpowiedź, zmarnowałem tyle czasu, aż znalazłem to! Dzięki :) – Alqueraf

+0

Dziękuję, działa Charms.you zaoszczędzić mój czas – Shailesh

Powiązane problemy