【问题标题】:Dynamically changing css values in a webview without reloading (Android)在不重新加载的情况下动态更改 web 视图中的 css 值(Android)
【发布时间】:2013-06-20 09:16:41
【问题描述】:

我有一个基于 WebView 的应用程序,我想在其中添加一个“夜间模式”。 我的第一直觉是让程序每次都根据夜间模式是否打开来呈现正确的 CSS 值,效果很好,但这意味着每次切换模式时都必须重新加载页面。 有什么方法可以追溯更改 css 值而无需重新加载页面?

【问题讨论】:

    标签: android css webview


    【解决方案1】:

    您可以将代码注入页面的 DOM。因此,例如,您可以有一个重置样式表,然后根据需要将带有 javascript 的白天或夜间模式类注入到 dom 中,如下所示:

    public class WebClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    
        @Override
        public void onPageFinished(WebView view, String url) 
        {       
            view.loadUrl("javascript:document.getElementById(id).style.property=new style");       
        }
    }
    

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 2020-12-10
      • 1970-01-01
      相关资源
      最近更新 更多