Javascript 动态附加googleplus按钮的回调参数
我有一个google plus按钮,代码正常Javascript 动态附加googleplus按钮的回调参数,javascript,google-plus,Javascript,Google Plus,我有一个google plus按钮,代码正常 <g:plusone size="tall" callback="plusone_vote" href="http://example.com"></g:plusone> 到目前为止一切都很好。每当发生gplus单击时,console.log都能正常工作 但是,当我这样做的时候 <g:plusone size="tall" href="http://example.com"></g:plusone>
<g:plusone size="tall" callback="plusone_vote" href="http://example.com"></g:plusone>
到目前为止一切都很好。每当发生gplus单击时,console.log都能正常工作
但是,当我这样做的时候
<g:plusone size="tall" href="http://example.com"></g:plusone>
如果if(gplus_event!=null)块中有两个console.log,则会显示“callback”属性与标记相连。但即使在那之后,回调函数也不会被调用
有线索知道我遗漏了什么吗?它是这样工作的吗
任何线索都很好
谢谢这样很好:
<g:plusone size="tall" href="http://example.com"></g:plusone>
Deno::Sudhir的答案之所以有效,是因为加载脚本时恰好有足够的延迟,但不能保证它在所有情况下都能工作,或者可能是在缓存的好处发挥作用时 执行代码之前,
plusone.js
文件正在解析页面并呈现/转换元素,因此添加回调太晚。您需要确保在呈现元素之前附加回调。您可以通过几种方法来实现这一点
gapi.plusone.render(elementId)
或gapi.plusone.go(container)
来指示API您已经准备好使用按钮gapi.plusone.render(elementId)
或gapi.plusone.go(container)
这不会在所有情况下都起作用。恰好有足够的延迟,您的代码首先执行,但我不会在所有情况下都指望这一点。您是对的。我讨论了这个问题。最后我放弃了这个想法,实际上我是静态地附加回拨。如果我有时间,我会回来的。我现在承受着很大的压力!!
var gplus_event = document.getElementsByTagName("g:plusone");
if(gplus_event!=null)
{
console.log(gplus_event);
var x = document.getElementsByTagName("g:plusone");
x[0].setAttribute('callback', 'plusone_vote');
console.log(gplus_event);
}
<g:plusone size="tall" href="http://example.com"></g:plusone>
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);
var gplus_event = document.getElementsByTagName("g:plusone");
if(gplus_event!=null)
{
console.log(gplus_event);
var x = document.getElementsByTagName("g:plusone");
x[0].setAttribute('callback', 'plusone_vote');
console.log(gplus_event);
}
function plusone_vote(par) {
alert(par.state);
}