7

我有一个 webview,我正在从一个站点加载一个外部 HTML。我尝试使用 javascript 函数更改背景颜色:

    function changeBGC(color){
document.bgColor = color;
}

那是行不通的。但如果我在本地加载,那么我可以更改背景颜色。是否有某种安全措施阻止我更改从外部加载到 webview 中的网页?

4

1 回答 1

8

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

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

所以把它们放在一起:

启动 WebView 时:

WebView webview = new WebView();
webview.setWebViewClient(new WebClient());
webView.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("stackoverflow.com");

您的网络视图客户端:

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);       
    }
}
于 2013-09-01T05:12:12.907 回答