UIWebView更改行间距文本

时间:2012-05-27 16:31:14

标签: javascript xcode ios5 uiwebview

我正在寻找一种javascript方法或一种在UIWebView中更改文本行间距的方法。

有什么想法吗?

编辑:

Evan回答了上述问题,但我对同一主题提出了另一个问题。

如何查询当前行间距值的来源?

1 个答案:

答案 0 :(得分:2)

您需要通过调用UIWebView将JavaScript注入stringByEvaluatingJavaScriptFromString:的来源。

使用Javascript:

var head = document.getElementsByTagName('head')[0],
    style = document.createElement('style'),
    rules = document.createTextNode('* { line-height: 20px !important; }');
style.type = 'text/css';
if(style.styleSheet)
    style.styleSheet.cssText = rules.nodeValue;
else style.appendChild(rules);
head.appendChild(style);

Objective-C(可能在webViewDidFinishLoading:中):

NSString *js = /* The javascript above in a string */
[webView stringByEvaluatingJavaScriptFromString:js];

要检索页面上第一个line-height元素的h1值:

使用Javascript:

var element = document.getElementsByTagName('h1')[0],
    style = window.getComputedStyle(element),
    lh = style.getPropertyValue('line-height');
return lh;

目标-C:

NSString *js = /* The javascript above in a string */
NSString *lineHeight = [webView stringByEvaluatingJavaScriptFromString:js];