html - 在现有 HTML 输入字段中加载图像/ Logo - UIWebView

标签 html ios objective-c 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];
}

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

问题是如何在特定文本框中注入(inject)我自己的图像?

尝试第 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();"];

没有获得成功。 . .

尝试 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
  • 本地镜像位于我的项目之外。 . .

先生,感谢您的努力,但它仍然没有解决通用方法。 . .

新测试: 我可以通过 [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();"];

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

我的实际座右铭是在每个输入标签中显示本地镜像(通用)

完成:

 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 文本字段,然后将 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

关于html - 在现有 HTML 输入字段中加载图像/ Logo - UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42382817/

相关文章:

html - 元标记解释 : http-equiv and charset

iphone - 传递动画数组时应用程序崩溃

ios - Swift 4.2,Xcode 10.2 无合并运算符警告

ios - SCNScene - 调用 SCNScene 的 fatal error (名为 :): Thread 1: EXC_BAD_INSTRUCTION

iOS 14 - UIImagePickerController 中不显示缩略图

html - SVG 圆圈中的中心文本

html - 如何在相对div中包含固定栏并完美显示滚动条

HTML <span> questionn 不确定

iphone - 如何创建自定义 iOS View

objective-c - MKMapRect 和 MKCoordinateRegion 有什么区别