2012-02-19 38 views
0

我正在使用stringByEvaluatingJavaScriptFromString:首先執行下面的JavaScript,然後執行addTestListener();何時使用UIWebView加載DOM?

我得到'添加監聽器'警報顯示,但從來沒有'DOM內容加載'警報。 我試圖在UIWebView的生命週期(loadView,viewDidLoad,viewWillAppear,webViewDidStartLoad,webViewDidAppear等)中執行腳本,但我從來沒有看到'DOM內容加載'警報。 JavaScript是否正確?如果是這樣,爲什麼它永遠不會出現?

var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.text = 
var Test = 
{ 
f: function() 
    { 
     if (!event.originalTarget.defaultView.frameElement) 
     { 
      alert('DOM content loaded'); 
     } 
    } 
} 

function addTestListener() 
{ 
    alert('adding listener'); 
    window.addEventListener("DOMContentLoaded", function(e) { Test.f(); }, false); 
} 



document.getElementsByTagName('head')[0].appendChild(script); 

回答

0

我覺得webViewDidStartLoad之前,DOMContentLoaded事件已經引發。在webViewDidStartLoad,我做了以下事情:

[webView stringByEvaluatingJavaScriptFromString:@"alert(document.readyState)"]; 

,其結果是完成