jQuery click()无法在Google +1按钮上运行

时间:2017-08-31 19:36:34

标签: jquery google-plus google-plus-one

此页面(http://buttonspace.com)正在使用顶部的Google +1按钮。

文档: https://developers.google.com/+/web/+1button/

直到大约2个月前,当我假设谷歌更新了他们按钮的代码时,它工作正常。

为什么这个jQuery click()代码没有被解雇?

<script>
    $("#g-plusone").click(function(){
        console.log("Clicked!");
        alert("Clicked!");              
    });
</script> 

3 个答案:

答案 0 :(得分:1)

看来你的选择器错了。我在LI元素上看到.google-plus-one。或者,里面还有ID为#___plusone_0的DIV ,也许这就是你要找的东西。

enter image description here

试试这样:

<script>
    $(".google-plus-one").click(function(){
        console.log("Clicked!");
        alert("Clicked!");              
    });
</script> 

尽管如此,您仍然要将事件附加到包含按钮的iframe的LI(或DIV),而不是按钮本身。由于同源策略,您无法访问Iframe内的按钮。

答案 1 :(得分:0)

你需要的是:

$("body").contents().find(".google-plus-one").click() 

找到iframe中的内容并对其执行某些操作。您之前所做的事情是要求标记最初位于页面上,以便将事件绑定到元素。您需要一种方法来在将元素渲染到DOM之后选择该元素。

答案 2 :(得分:0)

所以我的解决方法是使用图像来表示按钮,然后使用超链接打开G +帖子的新窗口。通过绕过Google的API和iframe,我可以捕获点击事件。

<li class="google-plus-one">                
    <a href="https://plus.google.com/share?app=110&url=<?php echo $url; ?>" target="_blank"><img src="/google_plus.png" alt="Google +1"></a>
</li>

<script>
    $(".google-plus-one").click(function(){     
        console.log("clicked!");                
    });
</script>