2017-02-22 5 views
0

, как я новичок в программирование я сделал что-то вроде этого:Загрузить изображение/логотип в поле ввода HTML существующего - UIWebView

- (void)completeUserFieldsForWebView:(UIWebView *)webView withUsername:(NSString *)username { 

// TextField Which has Value "email" 
NSString *loadUsernameJS = 
[NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='email']\"); \ 
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", username]; 

// TextField Which has Value "Text" if email is not found 
NSString *loadText = 
[NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='text']\"); \ 
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", username]; 
[webView stringByEvaluatingJavaScriptFromString: loadUsernameJS]; 
[webView stringByEvaluatingJavaScriptFromString: loadText]; 
} 

Что заполнить все текстовые поля в соответствии с моим входом. , ,

- (void)completePasswordFieldsForWebView:(UIWebView *)webView withPassword:(NSString *)password { 

NSString *loadPasswordJS = 
[NSString stringWithFormat:@"var passFields = document.querySelectorAll(\"input[type='password']\"); \ 
for (var i = passFields.length>>> 0; i--;) { passFields[i].value ='%@';}", password]; 
[webView stringByEvaluatingJavaScriptFromString: loadPasswordJS]; 
} 

, который заполняет параметр пароля на определенной странице HTML в UIWebView. , ,

Вопрос в том, как я могу вставлять свои собственные изображения в частности текстовое поле?

Try No. 1:

[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');" 
     "script.type = 'text/javascript';" 
     "script.text = \"function myFunction() { " 
     "var field = document.getElementById('txtAdminPwd');" 
     "field.style.backgroundImage='url(icon1.png)';" 
     "}\";" 
     "document.getElementsByTagName('head')[0].appendChild(script);"]; 

     [webView stringByEvaluatingJavaScriptFromString:@"myFunction();"]; 

Не получать успеха. , ,

Try No. 2 (@ Аруна):

NSString *cssString = @".login-text-box-bg1{ background-image:url(myProjectName/Arun.png); background-position: right top; background-repeat: no-repeat; background-size: contain; }"; // 1 
     NSString *javascriptString = @"var style = document.createElement('style'); style.innerHTML = '%@'; document.head.appendChild(style)"; // 2 
     NSString *javascriptWithCSSString = [NSString stringWithFormat:javascriptString, cssString]; // 3 
     [webView stringByEvaluatingJavaScriptFromString:javascriptWithCSSString]; // 4 
  • местное изображение находится вне на моем проекте. , ,

Сэр, спасибо за усилия, но он все еще не решает Универсальный подход. , ,

Новый тест: я могу получить идентификатор или имя класса с помощью [inputNode getAttributeNamed: @ "ID"] [метод] 2

Теперь, что если я делаю что-то вроде этого

[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');" 
     "script.type = 'text/javascript';" 
     "script.text = \"function myFunction() { " 
     "var field = document.getElementById('%@');" 
     "field.style.backgroundImage = 'url('icon1.png')';" 

     "}\";" 
     "document.getElementsByTagName('head')[0].appendChild(script);",[inputNode getAttributeNamed:@"id"]]; 

     [webView stringByEvaluatingJavaScriptFromString:@"myFunction();"]; 

, но это ошибка, мы не можем передать аргумент? оставить: \

Мой Actual девиза показывает локальное изображение в каждой входной метке (Universal)

Done:

NSString *strJSInjection = [NSString stringWithFormat:@".%@{ background-image:url(https://s29.postimg.org/qqxoigjbr/Arun_Photo.png); background-position: right top; background-repeat: no-repeat; background-size: contain; }",[inputNode getAttributeNamed:@"class"]]; 

     NSString *cssString = strJSInjection; // 1 
     NSString *javascriptString = @"var style = document.createElement('style'); style.innerHTML = '%@'; document.head.appendChild(style)"; // 2 
     NSString *javascriptWithCSSString = [NSString stringWithFormat:javascriptString, cssString]; // 3 
     [webView stringByEvaluatingJavaScriptFromString:javascriptWithCSSString]; // 4 
+0

Знаете ли вы имя класса или идентификатор текстового поля, которое необходимо вставить изображение? – arunjos007

+0

Да, у меня есть доступ к текстовому полю, я пытался вставить javascript, но все равно не получаю никакого успеха. , , –

+0

Попробуйте мой ответ – arunjos007

ответ

1
<input type="text" class="textBox" /> 

Давайте предположим, что выше ваш HTML textfield затем применить CSS к этому для вставки изображения попробуйте ввести код ниже,

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    NSString *cssString = @".textBox{ background-image:url(https://s29.postimg.org/qqxoigjbr/Arun_Photo.png); background-position: right top; background-repeat: no-repeat; background-size: contain; }"; // 1 
    NSString *javascriptString = @"var style = document.createElement('style'); style.innerHTML = '%@'; document.head.appendChild(style)"; // 2 
    NSString *javascriptWithCSSString = [NSString stringWithFormat:javascriptString, cssString]; // 3 
    [webView stringByEvaluatingJavaScriptFromString:javascriptWithCSSString]; // 4 
} 

Для Локальный файл изображения вы можете попробовать ниже фрагмент кода,

NSString *url = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"]; 
NSString *cssString = [NSString stringWithFormat:@".textBox{ background-image:url(%@); background-position: right top; background-repeat: no-repeat; background-size: contain; }",url]; // 1 
+0

Он будет работать, если вы установили правильный путь к вашему локальному файлу изображения. – arunjos007

+0

Перед тем, как попробовать с объективом C, вы можете просто подтвердить, что ваш css и ссылка работают, поместив здесь код https: // jsfiddle. net/r3ta1e2f/ – arunjos007

+0

Спасибо, я сделал это, просто просветите меня о том, как показать местное изображение, если это возможно. , , –

Смежные вопросы