在现有的HTMLinput字段中加载图像/徽标 – 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]; } 

根据我的input填写所有文本字段。 。 。

 - (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]; } 

它在UIWebView中的某个HTML页面中填充Password参数。 。 。

问题是我怎样才能注入我自己的图像在特定的文本框?

试一下:

  [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();"]; 

没有成功。 。 。

试试2号(@ arun's):

  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 
  • 本地图像是在我的项目之外。 。 。

主席先生,感谢你的努力,但仍然没有解决普遍的方法。 。 。

新testing :我可以通过[inputNode getAttributeNamed:@“id”] [method] 2获得id或类名

现在,如果我做这样的事情呢

  [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();"]; 

但它是抛出一个错误不能我们传递一个参数? 离开:\

我的实际座右铭是显示本地图像到每个input标签(通用)

完成:

  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 

 <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