2015-09-16 25 views
5

Bu sorunun çok yaygın olduğunu ve here - JS veya JQuery ve here kullanarak nasıl çözülebileceğini biliyorum - Android'de nasıl çalıştıracağız. Eh bu yöntemler iyi çalışıyor ama biz çağırdığınızda:Dinamik olarak HTML öğesini android web görünümünde değiştirin

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

görüntü link1 LINK2 ile değişiyor ben başından gidiyorum sonunda duyuyorum eğer öyleyse, resim, sayfa yeniden başlatılır yükleniyor ama ... olabilir Sayfayı gerçek bir tarayıcıda olduğu gibi yeniden yüklememek için link1'i link2'ye gerçek zamanlı olarak değiştirdim.

ve ben gibi, benim html dosyasında id ayarı da çalıştı:

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

ve Android'de çalıştırın: Burada

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

hiçbir şey sadece boş ekran alamadım ..

+0

Bunu nasıl düzeltti? istediğini alabilir misin? Ben aynı sorun var –

+0

lok at @ arun's cevap - çalışıyor – johny

cevap

9

Bu, sayfayı yeniden yüklemez.

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

örnek:

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

İnanılmaz! +1. Hack için herhangi bir referans var mı? – Stan

+0

Mükemmel cevap, bunu bulana kadar çok zaman harcadım! Teşekkürler :) – Alqueraf

+0

Teşekkürler, Bu Charms.you zamanımı kurtarır – Shailesh

İlgili konular