2011-02-16 59 views
1

有一些靜態HTML內容,我需要在移動設備上顯示。這些文件已經有了他們的CSS樣式,並且有許多類。更改文本對齊到左邊與JavaScript的所有類與文本對齊對齊

爲了提高小屏幕上的可讀性,我想用text-align:justify改爲text-align:left。

我認爲最合適的解決方案是修改webViewDidFinishLoad方法中的樣式。我怎樣才能完成這個使用Javascript?

在此先感謝

回答

0

解決這樣的:

var styleSheets = document.styleSheets; 
for(i=0; i < styleSheets.length; i++){ 
    for(j=0; j < styleSheets[i].cssRules.length; j++){ 
     var rule = styleSheets[i].cssRules[j];    
     if(rule.style.textAlign=='justify'){ 
      rule.style.textAlign='left'; 
     } 
    } 
} 

這工作,但我還是想了解更多的優雅的解決方案W/O jQuery的。

0

這是一個可怕的方式,我不會真正使用我自己,因爲它爲每個元素添加了內聯樣式。我想不出有什麼其他的方式去做,而沒有指定你想讓它作用於的類或元素。

http://jsfiddle.net/alangilby/e7XfU/

雖然

有趣的實驗。哦,你不想要jQuery。

0

這個問題很舊,但是,我想我會提供我的答案供參考。不知道這是否有助於您的需要,但是,以下是我過去使用的非jQuery方式將文本對齊:留給整個主體。

NSString* css = @"\"body { text-align:left;}\""; 
    NSString* js = [NSString stringWithFormat: 
        @"var styleNode = document.createElement('style');\n" 
        "styleNode.type = \"text/css\";\n" 
        "var styleText = document.createTextNode(%@);\n" 
        "styleNode.appendChild(styleText);\n" 
        "document.getElementsByTagName('head')[0].appendChild(styleNode);\n",css]; 
    [self.webView stringByEvaluatingJavaScriptFromString:js];