Событие 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();
}

Он добавляется:

-(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;
    }

Если я добавляю вызовы предупреждений, я вижу, что вызов addEventListener выполняется успешно. Однако функция DOMReady() никогда не вызывается. Есть идеи, почему бы и нет?

Спасибо

8
задан joern 17 March 2012 в 17:32
поделиться