Android - 使用webview加载URL后,我可以更改背景颜色

j2e*_*nue 6 javascript security android webview

我有一个webview,我正在加载外部HTML表单的网站.我尝试使用javascript函数更改背景颜色:

    function changeBGC(color){
document.bgColor = color;
}
Run Code Online (Sandbox Code Playgroud)

这不起作用.但如果我在本地加载然后我能够改变背景颜色.是否有某种安全措施阻止我将网页更改为外部加载到webview中?

And*_*tha 8

您可以使用WebViewClient运行javascript,例如此处.

更改文档背景颜色的 javascript代码.

所以把它们放在一起:

启动WebView时:

WebView webview = new WebView();
webview.setWebViewClient(new WebClient());
webView.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("stackoverflow.com");
Run Code Online (Sandbox Code Playgroud)

您的网络视图客户端:

public class WebClient extends WebViewClient {

    int color;

    public WebClient(int color) {
        this.color = color;
    }
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) 
    {
        String command = "javascript:document.body.style.background = " + color + ";";
        view.loadUrl(command);       
    }
}
Run Code Online (Sandbox Code Playgroud)