我只在用户请求时才从Google加号按钮加载脚本。使用的代码如下:
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
当我触发此脚本时,它会将占位符更改为google plus按钮。占位符如下所示:
<g:plusone size="tall" annotation="none"></g:plusone>
我只是在需要时加载了一些其他按钮。
现在有时按钮需要一段时间才能加载。有没有办法在加载所有按钮时获得警报。
然后我可以只显示一个加载器,直到它完全加载,然后很好地显示它。
我使用jQuery作为我的javascript框架。
要获得更好的解决方案,请查看以下问题:Invoking handler when all scripts finished loading via $.getScript
更好的方法是使用jQueries deffered object。我添加了一个小例子并且回答了问题。
答案 0 :(得分:2)
jQuery提供了一种定义脚本加载处理程序的机制:
$.getScript( 'https://apis.google.com/js/plusone.js', function () {
// the script has loaded and executed
});
在脚本执行完毕后调用此处理程序,因此它应该符合您的需求......
答案 1 :(得分:1)
如果要在不修改现有内容的情况下添加功能,请使用以下代码:
(function(){
var poller = window.setInterval(function(){//Set poller
if($('g\\:plusone').length == 0){ // When the document doesn't have
clearInterval(poller); // any g:plusone elements, clear
// poller, and execute your code
//Run your code..
}
}, 200); //Checks at a frequence of 200ms
})();