交互式共享通过JS不渲染

时间:2014-12-24 09:40:17

标签: javascript google-plus

有人可以向我解释为什么下面的代码不起作用?我复制了Google的代码,我需要" onshare"我不相信的设施可通过标准HTML获得。没有JS错误 - 没有任何反叛:

            <!DOCTYPE html>
            <html>
                    <head>
                            <title>Title of the document</title>
                            <script src="https://apis.google.com/js/platform.js" async defer></script>
                    </head>
            <body>
            <h1 style="font-family:arial;font-size:15px;">google_test</h1>                        <div id="sharePost"></div>
                    <script>
                      var options = {
                            contenturl: 'https://plus.google.com/pages/',
                            contentdeeplinkid: '/pages',
                            clientid: 'YOUR ID HERE',
                            cookiepolicy: 'single_host_origin',
                            prefilltext: 'Create your Google+ Page too!',
                            calltoactionlabel: 'CREATE',
                            calltoactionurl: 'http://plus.google.com/pages/create',
                            calltoactiondeeplinkid: '/pages/create',
                            onshare: function(response){
                                    alert(response); 
                            }                                
                      };

                      gapi.interactivepost.render('sharePost', options);
                    </script>
                    </body>
                    </html> 

经过一番调查(5/1/15)后,我发现在响应中(萤火虫中的网络面板)我在隐藏的文本框中收到错误。这是因为我的原始网址错了,但现在我得到以下内容:

<input type="hidden" id="error" value="true" />
<input type="hidden" id="response-form-encoded" value="state=887621045%7C0.2365188186&amp;error=immediate_failed&amp;num_sessions=1&amp;session_state=MY_SESSION_ID" />

知道这可能意味着什么吗?

2 个答案:

答案 0 :(得分:0)

您使用异步延迟加载Google API。因此,在创建共享链接时它尚未就绪。

您应该仅在加载页面后使用domready事件呈现共享链接,或者删除“异步延迟”#39;属性。

答案 1 :(得分:0)

答案很简单 - 感谢http://wheresgus.com/iodemos/demotargetipost/帮助我看到它。在上面的例子中,

<div id="sharePost"></div>

只需要这样的内容:

<div id="sharePost"><button>hello world</button></div>

事实上,你甚至不需要按钮!为什么文档没有这个我不知道 - 所以报告文档不是很好。另外你应该注意callbackurl和calltoactionurl都需要相同的协议 - 他们的例子也不同。