在android webView中动态改变HTML元素

Dynamically change HTML element in android webView

本文关键字:改变 HTML 元素 动态 android webView      更新时间:2023-09-26

我知道这个问题很常见,可以用这里的JS或JQuery来解决,还有这里的如何在Android上运行它。这些方法工作得很好但是当我们调用:

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

image link1正在与link2改变,图像正在加载,但页面重新启动,所以如果我在最后我要开始…我能否实时地将link1更改为link2,而不像在真正的浏览器中那样重新加载页面?

和我也尝试设置id在我的html文件,如:

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

并在Android上运行:

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

这里我什么也没得到,只是屏幕空白

这不是重新加载页面。

"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@mail.com";
            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>