возвращая переменную из JS в UIWebView - PullRequest
1 голос
/ 16 января 2012

Я не совсем понимаю, как извлечь значение переменной в js, выполненной в UIWebView, мой код:

NSString * js = [NSString stringWithFormat:@"var script = document.createElement('script');"  
                     "script.type = 'text/javascript';"  
                     "script.text = \"function getTopLeftCorner() { "  
                        "var el = document.elementFromPoint(%f, %f);"
                        "var pos = [el.offsetLeft, el.offsetTop];"
                        "var parent = el.offsetParent;"
                        "if (parent != el) {" 
                            "while (parent) {"  
                             "pos[0] += parent.offsetLeft;" 
                             "pos[1] += parent.offsetTop;" 
                             "parent = parent.offsetParent;"
                            "}"
                        "}"
                        "return pos;"
                      "}\";"  
                      "document.getElementsByTagName('head')[0].appendChild(script);"
                     , pt.x, pt.y];  

    [self stringByEvaluatingJavaScriptFromString:js];
    NSString * result = [self stringByEvaluatingJavaScriptFromString:@"getTopLeftCorner()"];

    NSLog(@"RESULT IS %@", result);

Есть идеи, почему результат пуст?

1 Ответ

0 голосов
/ 16 января 2012

Ваш первый оператор NSString * js = [NSString stringWithFormat:@"var script закрывает строку в конце строки, затем следует еще несколько C strings. Вы должны получить синтаксическую ошибку от компилятора Objective-C.

Для объединения строк используйте [NSString stringWithFormat:@"%@/%@/%@", three, two, one];. Прочитайте ссылку на класс для более подробного объяснения метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...