0

< > を含む html ファイルがありdiv、UIWebView にロードしていて、div に含まれるテキストの行数を知る必要があるため、javascript で確認できます。

<script>
function countLines() {
    var divHeight = document.getElementById('myDiv').offsetHeight;
    var lineHeight = parseInt(document.getElementById('myDiv').style.lineHeight);
    var lines = divHeight / lineHeight;
    alert("Lines: " + lines);
}
</script>

変数「lines」に警告します

Objective-C では、UIWebView からこの変数を取得してコードで使用するにはどうすればよいですか?

ありがとうございました!

4

2 に答える 2

8

UIWebViewメソッドstringByEvaluatingJavaScriptFromString:は、JavaScript環境への唯一のインターフェースです。渡されたJavaScript式の値の文字列表現を評価して返します。したがって、たとえば:

// simplified expression, no function needed
NSString *expr = @"document.getElementById('myDiv').offsetHeight / document.getElementById('myDiv').style.lineHeight";
// now pass it to the web view and parse the result
int lines = [[self.webView stringByEvaluatingJavaScriptFromString:expr] intValue];
于 2013-01-15T16:58:20.437 に答える
3

これは簡単:

NSString *jsString = @"function countLines() {var divHeight = document.getElementById('myDiv').offsetHeight;var lineHeight = parseInt(document.getElementById('myDiv').style.lineHeight);var lines = divHeight / lineHeight;return lines;};countLines();";

NSString *responseString = [MywebView stringByEvaluatingJavaScriptFromString:jsString];

そして、応答文字列変数に値が含まれている必要があります。これは、NSStringから数値に変換できます:-)

于 2013-01-15T16:57:39.087 に答える