Как мне выполнить действие, только когда кнопка G + закончила рендеринг?
Facebook позволяет сделать это, используя следующее:
FB.XFBML.parse(document, function() {
alert('rendering done');
});
Я просмотрел документацию Google, но ничего полезного не увидел.
Текущий обходной путь
В настоящее время мой обходной путь - отслеживать элемент G + до тех пор, пока не будут добавлены определенные элементы, а затем выполнить мое действие:
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js';
po.onload = function() {
var awaitRender = function(element) {
if (element.firstChild &&
element.firstChild.firstChild &&
element.firstChild.firstChild.tagName.toUpperCase() === 'IFRAME') {
alert('rendered!');
} else {
window.setTimeout(function() { awaitRender(element) }, 100);
}
};
var buttons = document.getElementsByClassName('googleplus-button');
for(var i = 0; i < buttons.length; i++) {
awaitRender(buttons[i]);
}
}
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
Вопрос
Я хотел бы знать, пожалуйста, если есть либо:
- Правильный способ сделать это для кнопок G +
- Лучшая реализация, чем то, что я взломал вместе выше