nkc*_*cmr 2 javascript jquery javascript-events
类似于jQuery在文档加载后加载的方式,我需要在JavaScript脚本完成后使用一些jQuery.
我正在加载来自Google Data API的联系人数据,并且数据显示的div需要完全加载(通过javascript),如果我是正确的话,可以通过jQuery访问.
有没有办法做到这一点?
假设您正在等待Google Analytics加载.现在,您知道Google Analytics加载时,_gaq将在DOM上注册.因此,除了所有其他(更好的)异步选项,您可以创建一个等待_gaq存在的函数:
waitForGaq = function(fn, attemptsLeft) {
var tick = attemptsLeft || 30;
if (typeof(_gaq) != 'object' || !_gaq._getAsyncTracker) {
//_gaq isn't registered yet
if (tick > 1) {
//recurse
setTimeout(function() {
waitForGaq(fn, tick - 1);
}, 100)
}
else {
//no ticks left, log error
log('failed to load window.gaq');
}
}
else {
//gaq is loaded, fire fn
fn();
}
}
Run Code Online (Sandbox Code Playgroud)
所以,任何代码都需要在AFTER _gaq注册后运行,你可以这样添加到页面中:
waitForGaq(function() {
//here's all my code...
});
Run Code Online (Sandbox Code Playgroud)
重申:只有在您添加的脚本不提供与库交互的异步方式时,才需要像这样递归.例如,谷歌分析是一个没有实际意义的例子,因为它提供了一个更清洁的方法:
http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html