3

Chrome(22.0 ....)を使用すると、時々、取ろうとすると:

<script src="http://apis.google.com/js/plusone.js" type="text/javascript"></script>

それは失敗します。つまり、ネットワーク コンソールを確認すると、「保留中...」と表示され、.load() イベントが停止しています。

なんで?どうすれば修正できますか?

また、試してみました:

<script type="text/javascript">
  (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);
  })();
</script>

しかし、それは同じです...

4

1 に答える 1

2

+1 ボタンの HTML コンテナが、リンクしたページのソースのどこにも定義されていません。ページで参照された最初のスクリプトが表示されますが、ページが欠落しているようです:

<!-- Place this tag where you want the +1 button to render. -->
<div class="g-plusone" data-annotation="inline" data-width="300"></div>

スクリプトの 2 番目のスニペットは、参照する非同期読み込み (推奨) 用であり、同じタイプの HTML コンテナーを挿入する必要があります。

+1 ボタン設定ツールを使用して、ページに含めるコードを生成できます。

[更新] g-plusone 要素は明らかに jQuery によって動的に注入されており、+1 ボタン自体のオンロード ハンドラーとは異なるオンロード タイミングを持っているため、表示されることがあります。この場合、parseTags: 明示的オプションを使用する必要があります。

<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
  {parsetags: 'explicit'}
</script>

そして、独自の JavaScript が g-plusone div を挿入した後、次を呼び出す必要があります。

gapi.plusone.go();

これにより、開始時にページ上のすべての +1 ボタンが明示的にレンダリングされます。

于 2012-10-18T18:20:20.263 に答える