2013-01-21 72 views
1

想法: 動態內容加載後,在鼠標懸停我試圖呈現谷歌分享按鈕,就像它在官方谷歌開發人員的網站上說。我使用谷歌分享顯式加載

代碼是:

gapi.plus.render(div); 

事實:

  • 如果我改變加上Plusone精選,它呈現谷歌加號按鈕,而不是分享。 (方式:腳本加載)
  • 如果我刪除{「parsetags」:「明確的」},按鈕加載(但在懸停沒有加載)

問題: 分享按鈕沒有按」噸加載。

調試運行與plus.render和plusone.render鏈接:

  1. http://romanlosev.igloro.info/googleshare.php?load=plusone(Plusone精選 - 作品,但加+按鈕加載)
  2. http://romanlosev.igloro.info/googleshare.php?load=plus(加 - 不工作)

回答

7

還有類似的問題on StackOverflow here

你需要做的是調用共享按鈕的顯式渲染方法。用以下代碼替換選擇div的函數將延遲屏幕上共享對象的渲染。

$("#clickme").click(function() 
{ 
    gapi.plus.go(); 
}); 

要渲染的各個按鈕,你必須通過設置共享的動作參數的對象,例如:

gapi.plus.render("plusOne", {action: "share"}); 

下面是一個更完整的例子,但這異步腳本加載和渲染可見的各種份額目標here

<html> 
<body> 
    <p> 
    <div data-action="share" class="g-plus" id="plusOne"></div> 
    <button onClick="gapi.plus.render('plusOne', getParamBag('https://www.google.com'))"></button> 
    </p> 
    <p> 
    <div data-action="share" class="g-plus" id="plusTwo"></div> 
    <button onClick="gapi.plus.render('plusTwo', getParamBag('https://plus.google.com'))"> </button> 
    </p> 
    <p> 
    <div data-action="share" class="g-plus" id="plusThree"></div> 
    <button onClick="gapi.plus.render('plusThree', getParamBag('https://developers.google.com'))"></button> 
    </p> 
</body> 
<script type="text/javascript"> 
    window.___gcfg = { 
     lang: 'en-US', 
     parsetags: 'explicit' 
    }; 
    (function() { 
    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); 
    })(); 
    function getParamBag(url){ 
    return { 
     action: "share", 
     href: url 
    }; 
    } 
</script> 
</html> 
+0

它將渲染所有對象。但我不需要渲染所有對象。加載內容後,對象數會增加,「gapi.plus.go()」將加載很長,並且會滯後。 –

+0

在這種情況下,使用gapi.plus.render(div)但像Gus一樣在其示例觸發器中顯示在正確的時間,無論是點擊還是加載動態內容之後。您將需要保留這些語法標籤:顯式設置。 – BrettJ