2012-05-17 48 views
1

我正在嘗試更改UIWebView中的字體。 我嘗試用下面的代碼來改變字體。如何將JavaScript添加到iOS中的UIWebView?

NSString *path = [[NSBundle mainBundle] bundlePath]; 
    NSString *cssPath = [path stringByAppendingPathComponent:@"test.css"]; 

    if(!cssPath) 
    { 
     NSLog(@"NO"); 
    } 

    NSString *js = [NSString stringWithFormat:@"var cssChild = document.createElement('link');" 
        "cssChild = 'text/css';" 
        "cssChild = 'stylesheet';" 
        "cssChild = '%@';", cssPath]; 
    js = [NSString stringWithFormat:@"%@ document.getElementsByTagName('head')[0].appendChild(cssChild);", js]; 

    [webViewOfInitial stringByEvaluatingJavaScriptFromString:js]; 

我將css文件添加到Internet的加載頁面的標題中。 我的css文件就是這樣的。

@font-face { 
    font-family: 'Zawgyi-One'; 
    font-style: normal; 
    src: local('Zawgyi-One'); 
} 

body { 
    font-family: 'Zawgyi-One'; 
} 

但是,當我完成頁面加載時檢索HTML標記,我找不到我上面的css標記。 那麼我該如何將該css文件追加到UIWebView's標題標籤的當前頁面? 還是有其他的教程UIWebView字體更改?

謝謝。

回答

2

您正朝着正確的方向前進,但您尚未提及,您嘗試更改哪種委託方法。 您可以在.js文件中包含JavaScript,因爲您可能稍後對其進行更改,將反映通過代碼(而不是js文件)所做的更改非常麻煩。嘗試使用此方法: -

您必須將HTML加載到具有正確baseURL參數的視圖中才能在UIWebView中使用相對路徑或文件。

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSURL *baseURL = [NSURL fileURLWithPath:path];  
[webView loadHTMLString:htmlString baseURL:baseURL]; 

接受基本URL的NSURL對象作爲文件reference.You可以指定本地URL或網頁作爲您的需求引導您to.Append CSS文件中的webViewDidFinishLoad:(UIWebView *)webView爲你做了。

注意: - 選擇.js文件並取消選中Bullseye列表示它爲編譯代碼(如果不這樣做,您只會收到警告)。

這是一個UIWebview Javascript Tutorial,可能會讓你去。

+0

什麼是htmlString? –

+0

如果可以的話,請用靜態HTML頁面爲我的問題寫一個示例項目。我真的需要。請。 –

+0

htmlstring是你的html內容..它可以是一個NSString或AN NSString直接指向一個html文件 –

相關問題