2017-02-22 16 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]; 
} 

これは、UIWebViewの特定のHTMLページにパスワードパラメータを入力します。 。 。

質問はどうすれば自分の画像を特定のテキストボックスに挿入できますか?

てみてください第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号(アルンさん@):

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" @]を経由して、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();"]; 
ようなことを何をすれば

しかし、それはエラーを投げている私たちは引数を渡すことはできません?去る:

\私の実際のモットーは、すべての入力タグ(ユニバーサル)完了

にローカルの画像を見せている。

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

のためには、画像を挿入したいテキストフィールドのクラス名またはIDを知っていますか? – 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

可能であれば、ローカルイメージを表示する方法について私に教えてください。 。 。 –

関連する問題