的UIWebView stringByEvaluatingJavaScriptFromString包装标签比方说,我有一个这样的HTML:与其他标签
<html>
<form>
<input type="button" id="Signature8" pdfFieldName="Signature8" onclick="document.location='pdz://signatureTapped?name=Signature8'" />
</form>
</html>
,我想以编程
<html>
<form>
<img src="Signature8.png">
<input type="button" id="Signature8" pdfFieldName="Signature8" onclick="document.location='pdz://signatureTapped?name=Signature8'" />
</img>
</form>
</html>
在Objective-C有一个UIWebView替换它。我做了什么,到目前为止,已经来到了这一点:
-(void) injectCode:(NSString*) code intoWebView:(UIWebView*) webView withEndCode:(NSString*) endCode {
NSString* innerhtml = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.forms[0].%@.outerHTML", self.identifier]];
NSString* newCode = [NSString stringWithFormat:@"document.forms[0].%@.outerHTML=%@%@%@", self.identifier, code, innerhtml, endCode];
[webView stringByEvaluatingJavaScriptFromString:newCode];
NSLog(@"%@", [webView stringByEvaluatingJavaScriptFromString:@"document.body.outerHTML"]);
}
应该这样调用:
[f injectCode:[NSString stringWithFormat:@"<img src=\"%@.png\" id=\"%@\">", f.identifier, f.identifier] intoWebView:self.webView withEndCode:@"</img>"];
(而F是包含名称,标识,那等对象Signature8字段)。 问题是:这不起作用。当我通过它进行调试时,我可以看到innerhtml被填充,我可以看到newCode实际上是正确的(至少对我来说)是正确的,我认为用newCode分配outerHTML的行以及所有应该替换整个HTML的行。为了验证,我将其登录到控制台。是的,没有任何改变。
任何人都可以告诉我我在做什么错吗?我真的不能使用jQuery或任何其他框架,因为代码应该从第三方获取它的HTML表单,而且他们不必使用jQuery或类似的东西。