UIWebView stringByEvaluatingJavaScriptFromString不调用javascript函数

我在控制器中有以下内容,并且不明白它为什么不在页面中调用该函数(它不执行任何操作)。 任何帮助表示赞赏 – 第一次使用此:

- (void)viewDidLoad { [super viewDidLoad]; NSString *fullURL = @"http://local.com/js-more.html"; // this does laod NSURL *url = [NSURL URLWithString:fullURL]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [arcWebView loadRequest:requestObj]; NSString * param = @"foo"; NSString * jsCallBack = [NSString stringWithFormat:@"myFunc('%@')",param]; [arcWebView stringByEvaluatingJavaScriptFromString:jsCallBack]; 

在我的网页上:

  function myFunc(this_str){![enter image description here][1] alert('here is val: ' + this_str); } myFunc('here is in string');  

这会在浏览器或嵌入式UIWebView中正确收到警报。

提前thx

编辑1

在此处输入图像描述

我将javascript放在webviewdidfinishload委托方法中。 由于问题可能是您的网页尚未加载,即使您已调用加载请求。

设置webviews委托,将代码放在那里,它应该工作。

例如

 - (void)viewDidLoad { [super viewDidLoad]; NSString *fullURL = @"http://local.com/js-more.html"; // this does laod NSURL *url = [NSURL URLWithString:fullURL]; NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; [arcWebView setDelegate:self]; [arcWebView loadRequest:requestObj]; } - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString * param = @"foo"; NSString * jsCallBack = [NSString stringWithFormat:@"myFunc('%@')",param]; [webView stringByEvaluatingJavaScriptFromString:jsCallBack]; }