使用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]]]; 
    } 
} 
+0

所以我没有机会注入“视”入HTML上的UIWebView显示在页面之前? – Effemberg

+0

只有通过修改HTML(例如,将其加载到字符串中,对其进行修改,将字符串加载到UIWebView而不是URL中),或者使用'

'中的'document.write()'。 –
+0

您可以如此友善地向我展示在加载到Web视图之前编辑HTML的过程吗? – Effemberg