我正在使用stringByEvaluatingJavaScriptFromString:首先执行以下javascript,然后执行addTestListener();
我显示了“添加侦听器”警报,但从未显示“已加载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 :(得分:0)
我认为在webViewDidStartLoad
之前,DOMContentLoaded
事件已经触发。在webViewDidStartLoad
中,我做了以下事情:
[webView stringByEvaluatingJavaScriptFromString:@"alert(document.readyState)"];
,结果完成。