2011-12-12 58 views
0

在我的示例中我想將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]; 

回答

1

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