我試圖檢測DOM何時準備好使用DOMContentLoaded。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()永遠不會被調用。任何想法爲什麼不呢?
感謝