使用CSS本地文件加载UIWebView

时间:2011-07-29 12:25:20

标签: iphone objective-c css ios uiwebview

我正在寻找一种方法来加载我的UIWebView,其中包含一个应该影响UIWebView的loadRequest的本地CSS文件。

清晰度: 我有一个UIWebView,我用网站网址加载请求它。 我还有一个本地CSS文件应该影响这个loadRequest网址。

我想将这个CSS文件加载到UIWebView上。

谢谢,

3 个答案:

答案 0 :(得分:3)

stackoverflow question似乎有一两个可能对您有帮助的答案。

您需要加载本地CSS(使用与@Shrey使用的方法不同,但查找您的CSS文件),并以某种方式将其注入页面,唯一的方法似乎是使用:

[webview stringByEvaluatingJavaScriptFromString:someJavascriptToInjectCSS];

和一些聪明的Javascript来修改页面以添加CSS。

希望这有助于指明您正确的方向。我已经使用这种方法将内容注入到页面中,所以它确实有效,但我不太清楚Javascript编写代码以将CSS注入页面。

答案 1 :(得分:0)

这是Swift版本。

webViewDidFinishLoad委托方法上加​​载css文件并使用stringByEvaluatingJavaScriptFromString。 积分here

 func loadWebViewStyles() {
        guard let cssPath = NSBundle.mainBundle().pathForResource("theme", ofType: "css") else {
            return
        }

        let loadStyles = "var script = document.createElement('link');  script.type = 'text/css'; script.rel = 'stylesheet'; script.href = '\(cssPath)'; document.getElementsByTagName('body')[0].appendChild(script);"

        webView.stringByEvaluatingJavaScriptFromString(loadStyles)
    }

答案 2 :(得分:-1)

试试这个:

[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]isDirectory:NO]]];