我们正试图在wordpress中将一些广告区域实现为插件
出于某种原因,当插件调用它的谷歌地图js时,它会从页面中删除我的广告。我无法弄清楚为什么会这样,而不是进一步挖掘他们的代码,我们决定采用更简单的解决方案
我现在将广告加载到内容区域上方的隐藏div中,并在Google地图完成后将其移动到位。目前我只是使用setTimeout
来实现这一点,但如果有一种方法来测试页面是否正确完成加载会更好。有点像$(window).load(function(){}
,而不仅仅是检查DOM已经完成加载,能够检查javascript是否已经完成执行。
有没有办法检查这样的事情?这也许是一种创建正在执行的所有js文件的输出的方法,所以我们实际上可以缩小谷歌地图的工作范围。
以下是我们展示广告的功能:
$( window ).load(function() {
setTimeout(function(){
var a = [1,2,3,4];
a = shuffle(a);
for (var i = 0; i < 4; i++) {
if(document.getElementById("mrec"+i)){
$("#ad"+a[i]).appendTo($("#mrec"+i));
$("#ad"+a[i]).css({
'display': 'block'
});
}
}
},2500);
});
答案 0 :(得分:1)
如果map插件返回一个值,你可以将它包装在一个promise中。 http://www.html5rocks.com/en/tutorials/es6/promises/。 Dojo长期以来对承诺有很好的支持。 https://dojotoolkit.org/documentation/tutorials/1.10/promises/
但如果插件在完成时没有返回任何内容,则执行类似
的操作 var howOftenToCheck = 200,
checkExist = setInterval(function() {
if(document.getElementById('mapDiv')) {
clearInterval(checkExist);
// do stuff now that map has loaded
}
}, howOftenToCheck);