Edw*_*der 17 css iphone cocoa-touch uiwebview
我想设置一个适用于桌面的网页,以便它可以在iPhone上的UIWebView上显示.我无法访问页面所源自的Web服务器.我想通过以编程方式更改stylesheet元素的href属性来实现此目的<link>.
我跟我做了以下几点IBOutlet UIWebView *webView.
NSString *cssPath = [[NSBundle mainBundle] pathForResource:@"MyStyleSheet" 
                                                    ofType:@"css"];
NSString *js = @"document.getElementsByTagName('link').setAttribute('href','";
NSString *js2 = [js stringByAppendingString:cssPath];
NSString *finalJS = [js2 stringByAppendingString:@"');"];
//check element structure
NSString *res = [webView stringByEvaluatingJavaScriptFromString:finalJS]; 
这不起作用.使用该[webView stringByEvaluatingJavaScriptFromString:]消息并对backgroundColor身体进行更改确实有效 - 完成练习以查看我是否正确使用了呼叫.
我吠叫错了树吗?
小智 26
您可以从本地项目目录加载CSS
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
[webView loadHTMLString:htmlString baseURL:baseURL];
详细信息请访问以下网站:http: //iphoneincubator.com/blog/windows-views/uiwebview-revisited
遗憾的是,UIWebView它不提供用于拦截和修改加载资源时发出的请求的API .这意味着您尝试的任何方法在某种程度上都是黑客攻击.
我会尝试的第一种方法是:
UIWebViewDelegate在视图上提供您自己的委托.-webView:shouldStartLoadWithRequest:navigationType:并返回NO.-stringByEvaluatingJavaScriptFromString:将JavaScript注入到动态加载/设置要使用的样式表的页面中.在JavaScript中,我会<link>在文档上创建一个全新的元素/节点,而不是尝试修改现有的元素/节点.
| 归档时间: | 
 | 
| 查看次数: | 30043 次 | 
| 最近记录: |