私は ePub リーダーを構築しており、UIWebView のすべての章の html ファイルを読み込んでいます。ユーザーが章の終わりに到達すると、同じ webView に次の章をロードします。ハイライト、メモ、および多くの追加コンテンツを作成するためにいくつかの jQuery 関数を実行する必要があるため、jQuery ライブラリーもビューアーに挿入します。これは私が使用しているコードです:
- (void)loadBook{
...
[self.bookWebView loadRequest:[NSURLRequest requestWithURL:chapterURL]];
NSString *jQuery = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"jquery" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil];
[self.bookWebView stringByEvaluatingJavaScriptFromString:jQuery];
}
最初の章をロードするwebViewDidFinishLoad:
と、が呼び出され、$(document).ready
関数が呼び出され、すべての jQuery コードが完全に機能します。次の章に切り替えるloadBook
と、新しい URL で関数が再度呼び出されますが、今回$(document).ready
は呼び出されないため、関数を呼び出そうとすると、次のエラーが発生します。ReferenceError: Can't find variable: $
最初の呼び出し後に jQuery ライブラリをロードしないのはなぜですか?