2011-12-10 3 views
1

UIWebView.but에서 선택한 단어를 가져오고 싶습니다. 때때로 그 코드를 얻을 수 없습니다. 내 코드입니다.uiwebview에서 선택된 단어를 가져올 수 없습니다.

는 I 자바 스크립트는 선택된 단어를 얻기 위해 사용한다. (getSelectedword.js)

var selectedText = ""; 
function getTextSelection() { 
    var text = window.getSelection(); 
    selectedText = text.anchorNode.textContent.substr(text.anchorOffset, text.focusOffset - text.anchorOffset); 

} 

하고

-(void)showHeightlight 
{ 
NSString *path = [[NSBundle mainBundle] pathForResource:@"getSelectedword" ofType:@"js"]; 
NSError *error = nil; 
NSString *jsCode = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; 
[webView stringByEvaluatingJavaScriptFromString:jsCode]; 
[webView stringByEvaluatingJavaScriptFromString:@"getTextSelection()"]; 
NSString *result = [webView stringByEvaluatingJavaScriptFromString:@"selectedText"]; 
NSLog(@"selected: %@", result); 

}

나 단어 선택 범위를 변경하는 경우, I 선택한 단어를 가져올 수 없습니다.

답변

1

나는 그 핵심을 바꾼다. 괜찮아.

getSelectedword.js

function getTextSelection() { 
var text = window.getSelection(); 
return text.toString(); 
} 

다음

-(void)showHeightlight 
{ 
NSString *path = [[NSBundle mainBundle] pathForResource:@"getSelectedword" ofType:@"js"]; 
NSError *error = nil; 
NSString *jsCode = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; 
[webView stringByEvaluatingJavaScriptFromString:jsCode]; 
NSString *result = [webView stringByEvaluatingJavaScriptFromString:@"getTextSelection()"]; 
NSLog(@"selected: %@", result); 
} 
+0

매우 유용합니다. 처음으로 왜 작동하지 않는지 아십니까? – Ricardo