Как вставить переменную в середине строки - PullRequest
0 голосов
/ 12 декабря 2011

Начиная у меня есть UTFS.

Попытка вставить переменную в середину строки для заполнения формы веб-представления без добавления строки путем добавления и увеличения объема кода. Мой текущий код

NSString * html = [webView stringByEvaluatingJavaScriptFromString: @ "document.DetailView.innerHTML;" @ "document.getElementsByName ('user_name') [0] .value = 'somuser';" @ "document.getElementsByName ('user_password') [0] .value = 'somevar';" @ "Document.DetailView.submit ();" ]

Я пытался

NSString * html = [webView stringByEvaluatingJavaScriptFromString: @ "document.DetailView.innerHTML;" @ "document.getElementsByName ('user_name') [0] .value = '% @';" @ "document.getElementsByName ('user_password') [0] .value = 'somevar';" @ "Document.DetailView.submit ();" , txtField.text];

Но он выдает ошибку сборки (в частности, ищет "]"). Я предполагаю, что мне придется медленно строить строку, используя stringbyappend, но я надеюсь на небольшую удачу, что кто-то столкнулся с этим или найдет обходной путь для этого. Это казалось таким простым в C #.

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

NSString's stringWithFormat обычно является правильным подходом для этого.

Пример:

[NSString stringWithFormat:@"somejavascript.var = '%@'", otherString];

Ошибка, которую я вижу первой в вашем первом и втором примерахздесь: ...TML;" @"doc...

0 голосов
/ 12 декабря 2011

Вы можете поместить переменные в строку с помощью stringWithFormat:.В вашем случае сработает следующее:

NSString *html = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.DetailView.innerHTML; document.getElementsByName('user_name')[0].value = '%@'; document.getElementsByName('user_password')[0].value = 'somevar'; document.DetailView.submit();" , txtField.text]];

В вашем коде есть дополнительная ошибка, заключающаяся в том, что вы неправильно кодируете значение текстового поля - подумайте, что произойдет, если пользователь введет апостроф.

Однако создание JavaScript таким способом не является хорошим подходом.Подумайте о выделении JavaScript во внешний файл JavaScript - это облегчит чтение и запись.

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