在不重新加载的情况下动态更改webview中的css值(Android)

时间:2013-06-20 09:16:41

标签: android css webview

我有一个基于WebView的应用程序,我想添加一个'夜间模式'。 我的第一直觉就是让程序每次都渲染正确的CSS值,具体取决于夜间模式是否开启,并且效果很好,但这意味着每次切换模式时都必须重新加载页面。 有没有什么办法可以在不重新加载页面的情况下主动改变css值?

1 个答案:

答案 0 :(得分:3)

您可以将代码注入页面的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