2012-02-19 4 views
0

私はstringByEvaluatingJavaScriptFromStringを使用しています。最初に次のjavascriptを実行してからaddTestListener()を実行します。DOMはいつUIWebViewで読み込まれますか?

「リスナーの追加」アラートは表示されますが、「DOMコンテンツがロードされました」アラートは表示されません。 私はUIWebViewのライフサイクル(loadView、viewDidLoad、viewWillAppear、webViewDidStartLoad、webViewDidAppearなど)のどこでもスクリプトを実行しようとしましたが、 'DOM content loaded'警告は表示されません。 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)"]; 

をし、その結果を完全です。

関連する問題