▼Menu

Googleの+1ボタンをつける(W3Cエラーを回避する方法)

Googleのプラスワンボタン(+1ボタン)を付けてみました。しかし、W3C Markup Validation Service のチェックでエラーとなってしまいます。これを回避する方法を見つけましたので紹介します。


広告

Googleのプラスワンボタンとは

Googleがプラスワンボタンのサービスを始めました。検索や SEO楽天 にも良さそうなので、早速ウェブページに付けてみました。やり方は簡単です。ヘッドタグの最後に次のスクリプトを追加します。

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

次にボディタグ内のプラスワンボタンを表示したい位置に次のタグを貼り付けます。

<g:plusone></g:plusone>

することはこれだけで、とても簡単なのですが、g:plusone の部分で、W3C Markup Validation Service のチェックで「element "g:plusone" undefined 」というエラーになります。

Googleのプラスワンボタンのエラーを回避する方法

そこで、このエラーを回避する方法を模索していました。次のグーグルのページが参考になりそうに思いました。

http://code.google.com/intl/ja/apis/+1button/#example-explicit-render

プラスワンボタンの明示的な表示のところにあるスクリプトを参考に試行錯誤しました。

<html>
<head>
<title>+1 デモ: 明示的な表示</title>
<link rel="canonical" href="http://www.example.com" />
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{"parsetags": "explicit"}
</script>

<script type="text/javascript">
function renderPlusone() {
gapi.plusone.render("plusone-div");
}
</script>

</head>
<body>
<a href="#" onClick="renderPlusone();">+1 ボタンを表示</a>
<div id="plusone-div"></div>
</body>
</html>

これをそのまま使っても、onclick のところでエラーになります。onclick を使わずに次のようにボディタグにonload で呼び出してやればエラーにはなりません。

<body onload="renderPlusone();">

しかし、既にonload は他で使っているので、他のonload 動作がうまくいきません。

複数のJavascriptイベントを動作させる方法

複数のJavaScriptライブラリを利用している場合、正常に動作しなかったり、どちらか一方しか動作しなかったりすることがあります。これは、JavaScriptのonloadは、ブラウザがすべてを読み込んでから実行するので、最後に記述した命令しか実行しないからです。

複数のonloadを利用する場合、次のような関数を作成してonloadの際の記述を書き換える方法を見つけました。

http://blog.webcreativepark.net/2008/02/26-185844.html

function addEvent(elm,listener,fn){
	try{
		elm.addEventListener(listener,fn,false);
	}catch(e){
		elm.attachEvent("on"+listener,fn);
	}
}

これは、addEventListenerという機能を利用して、イベントに対して命令を追加していく関数になるようです。

IEではaddEventListenerが利用できないので、attachEventという関数で代用しているようです。

Googleのプラスワンボタンのエラーを回避する方法の結論

結局、ヘッドタグ内の最後に次のスクリプトを記述しました。

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

そして、呼び出すjs ファイルの内容は次のようになりました。

// addEvent
function addEvent(elm,listener,fn){
	try{
		elm.addEventListener(listener,fn,false);
	}catch(e){
		elm.attachEvent("on"+listener,fn);
	}
}

// google plusone
function renderPlusone() {
gapi.plusone.render("plusone-div");
}

addEvent(window,"load",renderPlusone);

ボディタグ内のプラスワンボタンを表示するところには、次のタグを記述しました。

<div id="plusone-div"> </div>

これで、プラスワンボタンをつけても、W3C Markup Validation Service でもエラーにならずに表示させることができるようになりました。

スポンサーリンク

複数のJavascriptイベントを動作させる方法のメリット

上記の複数のJavascriptイベントを動作させる方法では、onload のみを紹介しましたが、onclickでもIE7、Firefox6,7共うまく動作することを確認しました。IE8ではonclickはうまく動作しないようです。

 
Main Menu |Mobile |Top Page |電気、電器 |工夫と製作 |アンテナ |デジタル放送 |修理技術1 |修理技術2 |修理過去ログ |電気柵 |生活情報 |健康情報 |名所旧跡 |ネット環境 |WordPress |写真集 |English Top
リンク集 |Sitemap |お問合せ |Pポリシー |修理掲示板
ネット環境 Menu |BBS迷惑書込 |迷惑Mail |Mail送信規制 |nPOP使い方 |BBSログ変換 |過去ログ表示 |MailCGI改造 |HPフォルダ構造 |サーバ引越 |英語サイト作り方 |二ヶ国語相互リンク |携帯サイト作り方 |XHTML Basic |XHTML Mobile P |携帯アクセス制御 |PC携帯両用サイト |サブドメイン同期 |XHTMLに書換 |TEXTメニュー |新ウィンドウに表示1 |新ウィンドウに表示2 |外部トラッキングコード |メニュー配置 |HTML一括変更 |ファイル取込 |ヘッドタグ共通化 |外部CSS |CSSコマンド |印刷用CSS |標準,互換モード |段組 |表示の速いHP |HP横幅 |HP背景 |HP文字 |HP見出し |HPタイトル |画像使い方 |altとtitle属性 |アクセスアップ |サイトマップ作成 |RSS配信 |自ドメインRSS |RSS使い方 |htaccess転送 |パラメータ削除 |wwwの有無と統一 |アクセス制限 |Adsenseクリック規制 |Adsense表示規制 |Google広告配置 |チャネルの設定 |ブログ人に広告配置 |ランダム画像切替 |デザイン自動切替 |フォルダ名取得 |Google+1ボタン |いいねボタン |Facebookのコメント |HPビルダ起動時間 |Expression Web |複数パソコンHP更新 |FFFTP使い方 |文字大きさ |モニタの選び方 |タッピング |ページ内検索 |ショートカットキー |Thumbs.db |日本語FEP |上手な日本語変換 |データ伝送 |MTUとMSS
山里の素人農業 |Daii-Wiki |私のブログ |Car Evolution |Tomy's HP |ページの先頭
 
 
as76.net
RSS
 
楽天市場
広告
Valid XHTML 1.0
Only OGP error
更新日:2011/12/09