Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态附加googleplus按钮的回调参数_Javascript_Google Plus - Fatal编程技术网

Javascript 动态附加googleplus按钮的回调参数

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>

我有一个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>
如果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您已经准备好使用按钮
  • 在代码执行之后
  • 完全动态地创建+1按钮,并在准备转换时调用
    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);
    }