2015-09-16 30 views
5

So che questa domanda è molto comune e può essere risolta utilizzando here - JS o JQuery e here - come eseguirlo su Android. Ebbene questo metodi stanno funzionando bene, ma quando noi chiamiamo:Modifica dinamica dell'elemento HTML in webView Android

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

immagine link1 sta cambiando con Link2, immagine sta caricando, ma la pagina viene riavviato, quindi se io sono alla fine sto per l'inizio ... possono Ho appena cambiato link1 a link2 in tempo reale, per non ricaricare la pagina come in un vero browser?

e ho provato anche l'impostazione id nel mio file HTML, come:

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

ed eseguire su Android:

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

qui non ho ricevuto nulla solo schermo vuoto ..

+0

Come hai fatto a risolvere questo problema? potresti ottenere quello che vuoi Ho lo stesso problema –

+0

lok alla risposta di @ arun - sta funzionando – johny

risposta

9

Questo non ricarica la pagina.

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

esempio:

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

Incredibile! +1. C'è qualche riferimento per l'hack? – Stan

+0

Risposta perfetta, ho perso così tanto tempo finché non ho trovato questo! Grazie :) – Alqueraf

+0

Grazie, funziona Charms. Risparmi il mio tempo – Shailesh

Problemi correlati