[JavaScript] ブックマークレットの追加ボタンを自動で挿入する
ブックマークレットの追加ボタンを自動で挿入するライブラリを作成した。
最近ではソーシャルブックマークサービスがかなり沢山あるが、サイト上にいちいち「このエントリを○○に追加!」といったボタンを配置するのが面倒なので、そこを自動化するためのJSライブラリを作成した(挿入されるタグを変えて2パターン作成)。個人的には、CSSなどでスタイル変え易いのでパターン2の方がいいと思う。
パターン1
仕様
class="sbmArea"のp要素を取得し、JSによって各SBMの追加ボタンを挿入する。
対象となるp要素内に予め値を設定している場合は、その値は削除されるが、ユーザがJSを切っている場合は、予め設定した値がそのまま表示される。
JSを編集することで、表示するボタンと非表示にするボタンを設定できる。
ボタン挿入対象とする要素とクラス名はJSを編集することで変更できる。
使い方
ZIPファイルを解凍後(中身はsbm.jsと画像のセット)、任意のディレクトリに配置し、本機能を実装したいhtmlでJSを読み込む。
<script type="text/javascript" src="common/js/sbm.js"></script>
追加ボタンを表示したい箇所にclass="sbmArea"を指定したp要素を記載する。
<p class="sbmArea">ブックマークレット登録</p>
JSで各ボタンの表示・非表示を設定する。
0:非表示 1:表示
conf : {
hatenaFlg : 1, // はてなブックマーク
livedoorFlg : 1, // livedoorクリップ
yahooFlg : 1, // Yahooブックマーク
googleFlg : 1, // Googleブックマーク
niftyFlg : 1, // @niftyクリップ
deliciousFlg : 1, // del.icio.us
technoratiFlg : 1, // テクノラティ
fc2Flg : 1, // fc2ブックマーク
pookmarkFlg : 1, // POOKMARK Airline
choixFlg : 1, // choix
targetTag : 'p', // 挿し込み対象の要素名
targetCls : 'sbmArea' // 挿し込み対象の要素のclass名
},
パターン2
仕様
class="sbmList"のul要素を取得し、取得したul要素内のli要素にJSによって各SBMの追加ボタンを挿入する。
各ボタンの追加はclass="SBM名"のli要素があれば行われるため、htmlで表示したくないli要素を削除することで、表示するボタンと非表示にするボタンを設定できる。
対象となるli要素内に予め値を設定している場合は、その値は削除されるが、ユーザがJSを切っている場合は、予め設定した値がそのまま表示される。
ボタン挿入対象とするクラス名はJSを編集することで変更できる。
使い方
ZIPファイルを解凍後(中身はsbm.jsと画像のセット)、任意のディレクトリに配置し、本機能を実装したいhtmlでJSを読み込む。
<script type="text/javascript" src="common/js/sbm.js"></script>
追加ボタンを表示したい箇所にclass="sbmList"を指定したul要素を記載し、 li要素に表示したいボタンのクラスを指定する。
<ul class="sbmList">
<li class="hatena">はてなブックマーク</li>
<li class="livedoor">livedoorクリップ</li>
<li class="yahoo">Yahooブックマーク</li>
<li class="google">Googleブックマーク</li>
<li class="nifty">@niftyクリップ</li>
<li class="delicious">del.icio.us</li>
<li class="technorati">テクノラティ</li>
<li class="fc2">fc2ブックマーク</li>
<li class="pookmark">POOKMARK Airline</li>
<li class="choix">choix</li>
</ul>
補足
ちなみに、JSの設定値はこんな感じなので、クラス名が気に入らない場合は変更可能である。
conf : {
hatenaClsName : 'hatena', // はてなブックマーク
livedoorClsName : 'livedoor', // livedoorクリップ
yahooClsName : 'yahoo', // Yahooブックマーク
googleClsName : 'google', // Googleブックマーク
niftyClsName : 'nifty', // @niftyクリップ
deliciousClsName : 'delicious', // del.icio.us
technoratiClsName : 'technorati', // テクノラティ
fc2ClsName : 'fc2', // fc2ブックマーク
pookmarkClsName : 'pookmark', // POOKMARK Airline
choixClsName : 'choix', // choix
targetTag : 'ul', // 挿し込み対象の要素名(※編集不可)
targetCls : 'sbmList' // 挿し込み対象の要素のclass名
},
トラックバックURL
http://mashimonator.weblike.jp/mt/mt-tb.cgi/39
コメント投稿フォーム