मुझे UIWebView
में टेक्स्ट फ़ील्ड को पूर्व-भरना होगा और यह समझने के लिए दिया गया है कि javascript
इस बारे में जाने का सबसे अच्छा तरीका है। दुर्भाग्यवश मुझे javascript
का कुछ भी पता नहीं है और पिछले कुछ घंटों के लिए झुका रहा है, कहीं भी नहीं।प्री-फिल वेबव्यू टेक्स्ट फ़ील्ड
नवीनतम कच्ची प्रयास:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
// username field id = username_5 & pw field id = password_5
NSString *javascript = @"\
var user = 'testUser';\
var pw = 'testPW';\
document.getElementById('username_5').value = user; \
document.getElementById('password_5').value = pw; \
;";
// Execute JS
[_emailWebView stringByEvaluatingJavaScriptFromString:javascript];
}
किसी को भी सही दिशा में मुझे बात कर सकते हैं?
-EDIT-
मैं भी पूरी तरह से लोड नहीं कॉल मामले में पेज पड़ा देरी करने की कोशिश की कोशिश की और अगर मैं की तरह कुछ फोन:
- (void)webViewDidFinishLoad:(UIWebView *)wv
{
[NSObject cancelPreviousPerformRequestsWithTarget:self];
[self performSelector:@selector(injectJavascript) withObject:nil afterDelay:1.0];
}
- (void)injectJavascript
{
[self.emailWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById('password_5').value = 'testPW';"]];
[self.emailWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.alert('test');"]];
}
चेतावनी दिखाई देता है लेकिन आईडी के साथ क्षेत्र password_5
है नहीं भरा।
प्रश्न में फ़ील्ड एक रूप में घोंसला हैं। पता नहीं है कि इससे कोई फर्क पड़ता है?
-संपादित 2-
मैं बहुत यकीन है कि समस्या/HTML से संबंधित है लक्ष्य वेबसाइट पर घोंसले के रूप में मैं सिर्फ एक और साइट पर इस की कोशिश की और यह काम किया है।
लक्ष्य साइट इस तरह नीडिंत है:
<html>
<head> … </head>
<body onload="FinishLoad(1);hideJSWarn();">
<div id="noJSWarn" class="cssSecurityWarning" style="display: none;"> … </div>
<table id="table_LoginPage_1" > … </table>
<table id="table_LoginPage_2" > … </table>
<blockquote>
<form id="frmLogin_4" onsubmit="return Login(1)" autocomplete="off" method="POST" action="login.cgi" name="frmLogin">
<input id="tz_offset_5" type="hidden" name="tz_offset"></input>
<table id="table_LoginPage_3" >
<tbody>
<tr> …
<td valign="top">
<table id="table_LoginPage_6" >
<tbody>
<tr>
<td> … </td>
<td>
<input id="username_5" type="text" size="20" name="username"></input>
इम यकीन नहीं अगर यह मदद मिलेगी कार्य करेगी, लेकिन उपयोग यू लापता नहीं कर रहे हैं ';' ' 'testPW'' के बाद? –
हां, धन्यवाद - टाइपो। – Robert
मैंने अभी आपके कोड का परीक्षण किया है (जोड़ा गया '; 'मैंने पिछली टिप्पणी में सुझाव दिया था) और आपका जेएस कोड मेरे लिए ठीक काम करता है। तो हो सकता है कि आपका एचटीएमएल कोड जांचें यदि यह ठीक है –