post2haiku
by
fumokmm
2011-05-25 [2011/05/25 07:23:49]
はてなハイク(http://h.hatena.ne.jp/)投稿用ボタンを設置します。
-
/*
* @title post2haiku
* @description はてなハイク(http://h.hatena.ne.jp/)投稿用ボタンを設置します。
* @license MIT License
*/
// [使用例]
// ■ボタンを設置したページのURLをキーワード、本文は空で投稿するハイクボタン
// <script type="text/javascript" src="http://bit.ly/post2haiku"></script>
// ■「ひとりごと」をキーワード、本文は空で投稿するハイクボタン
// <script type="text/javascript" src="http://bit.ly/post2haiku?word=%u3072%u3068%u308A%u3054%u3068"></script>
// ■ボタンを設置したページのURLをキーワード、本文は「このサイト面白いよ!」で投稿するハイクボタン
// <script type="text/javascript" src="http://bit.ly/post2haiku?body=%u3053%u306E%u30B5%u30A4%u30C8%u9762%u767D%u3044%u3088%uFF01"></script>
// ■「ひとりごと」をキーワード、本文は「このサイト面白いよ!」で投稿するハイクボタン
// <script type="text/javascript" src="http://bit.ly/post2haiku?word=%u3072%u3068%u308A%u3054%u3068&body=%u3053%u306E%u30B5%u30A4%u30C8%u9762%u767D%u3044%u3088%uFF01"></script>
// ■ボタンにツールチップ「ハイクで投稿」を指定する
// <script type="text/javascript" src="http://bit.ly/post2haiku?alt=%u30CF%u30A4%u30AF%u3067%u6295%u7A3F"></script>
//
// [パラメータ]
// ※encodeしたものを指定して下さい。こことか(http://bit.ly/llGHla)でescapeできます。
// word : キーワード(デフォルトはボタン設置したURL)
// body : 本文 (デフォルトは空文字)
// alt : ツールチップ文字列 (デフォルトは「はてなハイクに投稿」)
//
// [参考]
// http://developer.hatena.ne.jp/ja/documents/haiku/misc/forms
// http://nplll.com/archives/2009/04/javascript_2.php
// http://www.webzoit.net/hp/it/internet/homepage/script/java/escape_unescape/
(function(){
var configs = new Object;
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
var s = scripts[i];
if (s.src && s.src.match(/bit.ly\/post2haiku(\?.*)?/)) {
var params = s.src.replace(/.+\?/, '');
break;
}
}
params = params.split("&");
for(var i = 0; i < params.length; i++) {
var tmp = params[i].split("=");
configs[tmp[0]] = unescape(tmp[1]);
}
/* パラメータ取得 */
// 本文 (指定なしなら空文字)
var body = configs.body ? unescape(configs.body) : '';
// キーワード (指定なしならボタンを設置してあるURL)
var word = configs.word ? unescape(configs.word) : location.href;
// ツールチップ
var imageAlt = configs.alt ? unescape(configs.alt) : 'Haiku!';
var imageTitle = configs.alt ? unescape(configs.alt) : 'はてなハイクに投稿';
/* URL作成 */
var postUrl = 'http://h.hatena.ne.jp/?_charset_=utf-8&body=' + body + '&word=' + word;
/* ボタンのイメージのURL */
var buttonImageUrl = 'http://h.hatena.ne.jp/images/haiku-button.png';
/* ボタンのHTML作成 */
with(document){
open();
write('<a href="' + postUrl + '" target="_blank">');
write('<img id="post2haikubutton" src="' + buttonImageUrl + '" alt="' + imageAlt + '" title="' + imageTitle + '"/>');
write('</a>');
close();
}
})();
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。