2015-09-16 7 views
5

Ich weiß, dass diese Frage sehr häufig ist und gelöst werden kann mit here - JS oder JQuery und here - wie man es auf Android laufen. Nun diese Methoden arbeiten gut, aber wenn wir rufen:Dynamisch HTML-Element in android WebView ändern

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

Bild link1 mit link2 ändern, Bild wird geladen, aber Seite neu gestartet wird, so dass, wenn ich am Ende bin ich an den Anfang werde ... können Ich ändere einfach Link1 zu Link2 in Echtzeit, um die Seite nicht wie in einem echten Browser neu zu laden?

und ich habe auch versucht, id in meiner HTML-Datei einstellen, wie:

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

und laufe auf Android:

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

ich hier nicht bekommen, nichts nur leerer Bildschirm ..

+0

Wie man dieses Problem beheben haben? konntest du bekommen, was du willst. Ich habe das gleiche Problem –

+0

lok at @ Arun's Antwort - es funktioniert – johny

Antwort

9

Dadurch wird die Seite nicht neu geladen.

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

Beispiel:

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

Unglaublich! +1. Gibt es einen Hinweis für den Hack? – Stan

+0

Perfekte Antwort, ich habe so viel Zeit verschwendet, bis ich das gefunden habe! Danke :) – Alqueraf

+0

Danke, es funktioniert Charms.Sie sparen meine Zeit – Shailesh

Verwandte Themen