2015-09-16 19 views
5

Tôi biết câu hỏi này rất phổ biến và có thể được giải quyết bằng cách sử dụng here - JS hoặc JQuery và here - cách chạy trên Android. Vâng phương pháp này đang làm việc tốt nhưng khi chúng ta gọi là:Tự động thay đổi phần tử HTML trong android webView

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

ảnh link1 đang thay đổi với link2, hình ảnh đang tải nhưng trang được khởi động lại, vì vậy nếu tôi vào cuối Tôi sẽ bắt đầu ... có thể Tôi chỉ cần thay đổi link1 thành link2 trong thời gian thực, để không tải lại trang như trong trình duyệt thực?

và tôi cũng đã cố gắng thiết lập id trong file html của tôi, như:

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

và chạy trên Android:

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

đây tôi không nhận được gì chỉ có sản phẩm nào màn hình ..

+0

Làm thế nào bạn đã sửa lỗi này? bạn có thể có được những gì bạn muốn. Tôi có cùng một vấn đề –

+0

lok tại câu trả lời của @ arun - nó hoạt động – johny

Trả lời

9

Thao tác này không tải lại trang.

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

dụ:

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

Thật đáng kinh ngạc! +1. Có bất kỳ tài liệu tham khảo cho các hack? – Stan

+0

Câu trả lời hoàn hảo, tôi lãng phí rất nhiều thời gian cho đến khi tôi tìm thấy điều này! Cảm ơn :) – Alqueraf

+0

Cảm ơn, Nó hoạt động Charms.you tiết kiệm thời gian của tôi – Shailesh

Các vấn đề liên quan