DOMContentLoadedを使用してDOMの準備が整ったときを検出しようとしています。DOMContentLoadedイベントが起動しない
私はページに次のJavaScriptコードを注入しています:
var script = document.createElement('script');
script.type = 'text/javascript';
script.text = function addListener() {
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", DOMReady, false);
}
};
function DOMReady() {
document.location.href = "mydomain://anything.stuff";
}
function inject() {
document.getElementsByTagName('head')[0].appendChild(script);
addListener();
}
それはによって追加されます:私は、アラートの呼び出しを追加した場合、私はaddEventListenerをへの呼び出しがされていることがわかります
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
static BOOL injected = NO;
if (!injected)
{
NSBundle *bundle = [NSBundle mainBundle];
NSURL *jsURL = [bundle URLForResource:@"DetectDOMLoaded" withExtension:@"js"];
NSData *jsData = [NSData dataWithContentsOfURL:jsURL];
NSString *jsScriptAsString = [[NSMutableString alloc] initWithData:jsData encoding:NSUTF8StringEncoding];
[self.webView stringByEvaluatingJavaScriptFromString:jsScriptAsString];
[self.webView stringByEvaluatingJavaScriptFromString:@"inject();"];
injected = YES;
}
成功しました。しかし、関数DOMReady()は決して呼び出されません。どんなアイデアでもないのですか?その理由は、あなたがwebViewDidFinishLoad:
方法でJavaScriptを注入していることである
おかげ