2013-03-01 103 views
1
[self.webview stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"myfunc('%@')",string]]; 

這上面的代碼工作得很好,絕對沒有問題,但只有當我的JavaScript方法存在於我正在加載的頁面。但是,如果JS方法在任何外部JS簡稱文件,它沒有被觸發,這就是我如何加載我的網頁從UIWebView調用javascript方法

 [self.webview loadRequest:[[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://example/mypage.html"]]]; 

在此先感謝

+1

你保證你的外部js文件被解析?該方法在調用時必須爲WebView所知。 – Matthias 2013-03-01 08:12:35

+0

該方法在js文件中全局定義,並且該js文件在html文件中被稱爲 2013-03-01 09:44:35

回答

1

爲了確保你的JavaScript函數將被調用只有頁面完全加載,您必須在webViewDidFinishLoad:執行內調用它。

因此,舉例來說:

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"myfunc('%@')",string]]; 
    // Do any additional stuff 
}