2015-09-16 15 views
5

この質問は非常に一般的で、here - JSまたはJQueryとhere - Androidでの実行方法を使用して解決できます。私たちが呼ぶときも、この方法では正常に動作しますがされていますアンドロイドウェブビューでHTML要素を動的に変更する

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

画像リンク1は、画像がロードされますが、ページを再起動したので、私は終わりだ場合、私は最初に行きます、リンク2に変化している...することができます私は実際のブラウザのようにページをリロードしないために、link1をlink2にリアルタイムで変更するだけですか?

私も同じように、私のhtmlファイルにIDを設定してみました:

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

とAndroid上で実行します。

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

ここで私は何もちょうど空の画面を得ることはありません..

+0

どのようにこの問題を解決しましたか?あなたが望むものを手に入れられますか?私は同じ問題を抱えています –

+0

@ arunの答えでlok - それは働いています – johny

答えて

9

これはページをリロードしていません。

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

例:

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

信じられないほど! +1。ハックの参考資料はありますか? – Stan

+0

完璧な答え、私はこれを見つけ出すまでに多くの時間を無駄にしました!ありがとう:) – Alqueraf

+0

ありがとう、それはCharms.you私の時間を節約します – Shailesh

関連する問題