使用Javascript在HTML文件中插入视口meta
问题描述:
在我的示例中我想将Javascript注入到UiWebView RSS_Dettaglio_Webv
的内容中。为什么我无法插入视口元?使用Javascript在HTML文件中插入视口meta
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:storyLink]];
[RSS_Dettaglio_Webv loadRequest:request];
[RSS_Dettaglio_Webv setBackgroundColor:[UIColor whiteColor]];
NSString *javaScript = @"var viewPortTag=document.createElement('meta');\
viewPortTag.id=""viewport"";\
viewPortTag.name = ""viewport"";\
viewPortTag.content = ""width=320"";\
document.getElementsByTagName('head')[0].appendChild(viewPortTag);";
[RSS_Dettaglio_Webv stringByEvaluatingJavaScriptFromString:javaScript];
答
meta
当文档被加载时,标签被解析,否则它们将被忽略。请注意,我使用纯j检测视口大小,并将html页面调整为该大小。
UPDATE
如果必须使用元标记,你可以加载HTML作为一个字符串,而不是一个文件,加载它......像这样(未测试的代码)之前修改字符串 - 其中你把“宽度:设备宽度”到meta
标签,然后搜索并替换:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"htm"];
if (filePath) {
NSString *firstHTML = [NSString stringWithContentsOfFile:filePath];
if (firstHTML) {
NSString *html;
html = [firstHTML stringByReplacingOccurancesOfString:@"device-width" withString:@"320"];
[self.webView loadHTMLString:html baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
}
}
所以我没有机会注入“视”入HTML上的UIWebView显示在页面之前? – Effemberg
只有通过修改HTML(例如,将其加载到字符串中,对其进行修改,将字符串加载到UIWebView而不是URL中),或者使用'
'中的'document.write()'。 –您可以如此友善地向我展示在加载到Web视图之前编辑HTML的过程吗? – Effemberg