有一些靜態HTML內容,我需要在移動設備上顯示。這些文件已經有了他們的CSS樣式,並且有許多類。更改文本對齊到左邊與JavaScript的所有類與文本對齊對齊
爲了提高小屏幕上的可讀性,我想用text-align:justify改爲text-align:left。
我認爲最合適的解決方案是修改webViewDidFinishLoad
方法中的樣式。我怎樣才能完成這個使用Javascript?
在此先感謝
有一些靜態HTML內容,我需要在移動設備上顯示。這些文件已經有了他們的CSS樣式,並且有許多類。更改文本對齊到左邊與JavaScript的所有類與文本對齊對齊
爲了提高小屏幕上的可讀性,我想用text-align:justify改爲text-align:left。
我認爲最合適的解決方案是修改webViewDidFinishLoad
方法中的樣式。我怎樣才能完成這個使用Javascript?
在此先感謝
解決這樣的:
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的。
這是一個可怕的方式,我不會真正使用我自己,因爲它爲每個元素添加了內聯樣式。我想不出有什麼其他的方式去做,而沒有指定你想讓它作用於的類或元素。
http://jsfiddle.net/alangilby/e7XfU/
雖然有趣的實驗。哦,你不想要jQuery。
這個問題很舊,但是,我想我會提供我的答案供參考。不知道這是否有助於您的需要,但是,以下是我過去使用的非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];