jQuery click()不适用于Google+1按钮

jQuery click()不适用于Google+1按钮,jquery,google-plus,google-plus-one,Jquery,Google Plus,Google Plus One,此页面使用顶部的Google+1按钮 文件: 直到大约2个月前,我假设谷歌更新了他们按钮的代码,它还可以正常工作 你知道为什么这个jQuery点击代码没有触发吗 <script> $("#g-plusone").click(function(){ console.log("Clicked!"); alert("Clicked!"); }); </script> 看来你选错了。我把它看作是。谷

此页面使用顶部的Google+1按钮

文件:

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

你知道为什么这个jQuery点击代码没有触发吗

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

看来你选错了。我把它看作是。谷歌加上一个LI元素。或者,里面还有一个DIV,ID为plusone\u 0 ,也许这就是你要找的

试着这样做:

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

尽管这样,您将使用按钮将事件附加到包含Iframe的LI或DIV,而不是按钮本身。由于同一原产地政策,您将无法访问Iframe内的按钮。

您将需要以下内容:

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

找到iframe中的内容并对其进行处理。之前所做的工作要求标记最初位于页面上,以便将事件绑定到元素。您需要一种方法来在元素呈现到DOM之后选择它。

因此我的解决方案是使用一个图像来表示按钮,然后使用一个超链接来打开G+post的新窗口。通过绕过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>

据猜测,谷歌已经更新了它的功能来捕捉点击事件和evt.preventDefault和evt.stopPropagation——看起来点击事件根本没有从最里面的元素传递回来。通过监听同一元素上的悬停事件来测试这一点。不幸的是,这也没有起到任何作用:如果我仅仅在按钮外单击,它就会工作,但实际的按钮本身不会。所以我猜同源策略意味着没有办法让它工作?不幸的是,如果iframe的src在同一个域中,你只能访问iframe的元素。那么你是说javascript、jQuery、HTML等都无法捕获对该按钮的点击?我认为你应该做的是用JS API制作自己的按钮,然后,当用户单击时,触发+1和自定义函数。看来没有其他选择了。我试过了,运气不好。也许这与另一个答案提到的同一个源策略问题有关?您是否尝试将其设置为ON,以便在加载到DOM之前不必绑定它?类似于$'body'。单击,'.google plus one',函数{console.loghere;};我不得不将jquery从1.4.1升级到3.2.1,因为on函数不可用。但遗憾的是,它仍然不起作用: