- ¥Ð¥Ã¥¯¥¢¥Ã¥×°ìÍ÷
- ¥½¡¼¥¹ ¤òɽ¼¨
- ¤Ï¤Æ¥Öfooter¤ÎºîÀ®¡Êwith¡¡JSONP¡Ë ¤Ïºï½ü¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
- 1 (2006-10-11 (¿å) 15:17:03)
- 2 (2006-10-11 (¿å) 18:15:05)
- 3 (2006-10-12 (ÌÚ) 00:31:01)
¤Ï¤Æ¥Öfooter¤ÎºîÀ®¡Êwith¡¡JSONP¡Ë?
Ìܼ¡ †
¤Ï¤¸¤á¤Ë †
ARK-Web SandboxWiki¤Ç¤Ï¥Õ¥Ã¥¿¾ðÊó¤òɽ¸½¤¹¤ë¤¿¤á¤Ë¡¢PukiWiki¤Îblikifooter¥×¥é¥°¥¤¥ó¤òÍøÍѤ·¤Æ
#blikifooter(¿ÊÃÏ);
¤È¥³¥Þ¥ó¥É¤òµ½Ò¤¹¤ë¤³¤È¤Ç
Åê¹Æ¼Ô ¿ÊÃÏ|¥Ñ¡¼¥Þ¥ê¥ó¥¯|trackback(10)|comment(5)
¤Î¤è¤¦¤ËÅê¹Æ¼Ô¡¢Permalink¡¢Trackback¡¢¥³¥á¥ó¥È¿ô¤òɽ¼¨¤·¤Æ¤¤¤Þ¤·¤¿¤¬¡¢ÄɲäǤϤƥ֤ؤÎÅÐÏ¿¥Ü¥¿¥ó¡¢¤Ï¤Æ¥Ö¿ô¥«¥¦¥ó¥È¡¢¤Ï¤Æ¥Ö¾ÜºÙ¾ðÊó¤òɽ¼¨¤¹¤ë¤¿¤á¤Ëblikifooter¥×¥é¥°¥¤¥ó¤ò¥«¥¹¥¿¥Þ¥¤¥º¤·¤Þ¤·¤¿¡£¡ÊÄɲøå¤Î¥¤¥á¡¼¥¸¤Ï²¼¤Î²èÁü¤ÎÄ̤ê¡Ë
&ref(): File not found: "hatebufooter_with_blikifooter.JPG" at page "¤Ï¤Æ¥Öfooter¤ÎºîÀ®¡Êwith¡¡JSONP¡Ë";
ÆäˤϤƥֿô¥«¥¦¥ó¥È¤È¤Ï¤Æ¥Ö¾ÜºÙ¾ðÊó¤Î¼èÆÀ/ɽ¼¨¤Ë¤ÏJSONP(JSON with Padding)¤òÍøÍѤǤ¤ë¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¨¥ó¥È¥ê¡¼¾ðÊó¼èÆÀAPI¤ò»ÈÍѤ·¤Æ¼èÆÀ¤·¤Æ¤¤¤Þ¤¹¡£
¤Þ¤¿¡¢blikifooter¤ÈÀÚ¤êÎ¥¤·¤Æ¡¢¤Ï¤Æ¥ÖÅÐÏ¿¥Ü¥¿¥ó¡¢¤Ï¤Æ¥Ö¿ô¥«¥¦¥ó¥È¡¢¤Ï¤Æ¥Ö¾ÜºÙ¾ðÊó¤Îɽ¼¨µ¡Ç½¤Î¤ß¤ò»ý¤¿¤»¤¿hatebufooter¥×¥é¥°¥¤¥ó¤òºîÀ®¤·¤Þ¤·¤¿¡£
°Ê²¼¡¢¤³¤Î¥¨¥ó¥È¥ê¡¼¤Ç¤Ï
- ¤Ï¤Æ¥Öfooter¤Î³°Éô»ÅÍÍ
- ¥½¡¼¥¹²òÀâ
- JSONP¤Î²òÀâ
¤ò¹Ô¤¤¤Þ¤¹¡£
¤Ï¤Æ¥Öfooter¤Î³°Éô»ÅÍÍ †
¤Ï¤Æ¥Öfooter¤Î³°Éô»ÅÍͤȤʤ뵡ǽ¤Ï²¼µ¤Ë¤Ê¤ê¤Þ¤¹¡£
- ¤Ï¤Æ¥ÖÅÐÏ¿¥Ü¥¿¥ó¤Îɽ¼¨
- ¤Ï¤Æ¥Ö¿ô¥«¥¦¥ó¥È¤Îɽ¼¨
- ¤Ï¤Æ¥Ö¾ÜºÙ¾ðÊó¤Îɽ¼¨
¤Ï¤Æ¥ÖÅÐÏ¿¥Ü¥¿¥ó¤Ï[B!]¤Î¥Ü¥¿¥ó¤Ç¡¢¥¯¥ê¥Ã¥¯¤¹¤ë¤ÈÅö³ºWiki¥Ú¡¼¥¸¤ò¤Ï¤Æ¥ÖÅÐÏ¿¤Ç¤¤Þ¤¹¡£
¤Ï¤Æ¥Ö¿ô¥«¥¦¥ó¥È¤Îɽ¼¨¤È¡¢¤Ï¤Æ¥Ö¾ÜºÙ¾ðÊó¤Îɽ¼¨¤Ï¡¢Åö³ºWiki¥Ú¡¼¥¸¤¬1·ï°Ê¾å¤Ï¤Æ¥Ö¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ß͸ú¤Ë¤Ê¤ê¤Þ¤¹¡£
º£¡¢n(n=1¡ÁN)¿Í¤Ë¤è¤Ã¤ÆÅö³ºWiki¥Ú¡¼¥¸¤¬¤Ï¤Æ¥Ö¤µ¤ì¤Æ¤¤¤ë¤È¤¹¤ë¤È¡¢
¤Ï¤Æ¥Ö¿ô¥«¥¦¥ó¥È¤Ï
¤³¤Î¥¨¥ó¥È¥ê¡¼¤ò¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼( n users )
¤Èɽ¼¨¤µ¤ì¡¢
¤Ï¤Æ¥Ö¾ÜºÙ¾ðÊó¤Ï¤Ï¤Æ¥Ö¿ô¥«¥¦¥ó¥È¤Ë³¤¤¤Æ
<div> ¥æ¡¼¥¶1¤Î¤Ï¤Æ¥ÖÅÐÏ¿Æü»þ(yyyy/mm/dd hh:mm:ss) <a href="¥æ¡¼¥¶1¤ÎHatena::Bookmark¤ÎURL">¥æ¡¼¥¶1</a><br/> - ¥æ¡¼¥¶1¤Î¥³¥á¥ó¥È(¥æ¡¼¥¶1¤Î¥³¥á¥ó¥È¤¬¤â¤·¤¢¤ì¤Ðɽ¼¨¤µ¤ì¤ë) </div> <div> ¥æ¡¼¥¶2¤Î¤Ï¤Æ¥ÖÅÐÏ¿Æü»þ(yyyy/mm/dd hh:mm:ss) <a href="¥æ¡¼¥¶2¤ÎHatena::Bookmark¤ÎURL">¥æ¡¼¥¶2</a><br/> - ¥æ¡¼¥¶2¤Î¥³¥á¥ó¥È(¥æ¡¼¥¶2¤Î¥³¥á¥ó¥È¤¬¤â¤·¤¢¤ì¤Ðɽ¼¨¤µ¤ì¤ë) </div> : : <div> ¥æ¡¼¥¶N¤Î¤Ï¤Æ¥ÖÅÐÏ¿Æü»þ(yyyy/mm/dd hh:mm:ss) <a href="¥æ¡¼¥¶N¤ÎHatena::Bookmark¤ÎURL">¥æ¡¼¥¶N</a><br/> - ¥æ¡¼¥¶N¤Î¥³¥á¥ó¥È(¥æ¡¼¥¶N¤Î¥³¥á¥ó¥È¤¬¤â¤·¤¢¤ì¤Ðɽ¼¨¤µ¤ì¤ë) </div>
¤È¤¤¤¦¹½Â¤¤ÇÀ¸À®¡¢É½¼¨¤µ¤ì¤Þ¤¹¡£
¥½¡¼¥¹²òÀâ †
¤Ï¤Æ¥Öfooter¤Î¥á¥¤¥óÉô¤Î¥½¡¼¥¹¤Ï²¼µ¤ÎÄ̤ê¤Ç¤¹¡ÊÄê¿ôÉô¤ÎÀë¸ÀÅù¤ÏºÜ¤»¤Æ¤¤¤Þ¤»¤ó¡Ë
01: function plugin_hatebufooter_convert() { 02: 03: global $script, $vars; 04: 05: $args = func_get_args(); 06: $retval = ""; 07: 08: if ( empty($args[1]) || ( ( !empty($args[1]) ) && $args[1] == true ) ) { 09: 10: $permalink = $script . '?' . urlencode($vars['page']); 11: $permalink4bookmark = urlencode($permalink); 12: 13: // ¡Ö¤³¤Î¥¨¥ó¥È¥ê¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÅÐÏ¿¡×¥Ü¥¿¥ó¤Îɽ¼¨ 14: $retval .= sprintf('<a href="http://b.hatena.ne.jp/append?"><img alt="append.gif" src="" alt="¤³¤Î¥¨¥ó¥È¥ê¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ËÅÐÏ¿" width="" height="" border="0" /></a>', $permalink4bookmark, HATEBUFOOTER_HATENA_BOOKMARK_APPEND_IMG_URL, HATEBUFOOTER_HATENA_BOOKMARK_APPEND_IMG_WIDTH, HATEBUFOOTER_HATENA_BOOKMARK_APPEND_IMG_HEIGHT); 15: 16: // ¤Ï¤Æ¥Ö¿ô¥«¥¦¥ó¥È¤È¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤Æ¤¤¤ë¥æ¡¼¥¶¤Î¾ÜºÙɽ¼¨¡ÊJSONP¤òÍøÍÑ¡Ë 17: $md5_page = md5($vars['page']); 18: $retval .=<<< HATENA_BOOKMARK_COUNT 19: <script type="text/javascript" src="./js/jsr_class.js"></script> 20: <div id="hatena_bookmark_count_detail_$md5_page"> 21: </div> 22: <script type="text/javascript"> 23: var hatena_jsonp_base = 'http://b.hatena.ne.jp/entry/json/'; 24: var jsr = new JSONscriptRequest(hatena_jsonp_base + '?url=$permalink4bookmark&callback=hatena_footer_hundler_$md5_page'); 25: jsr.buildScriptTag(); 26: jsr.addScriptTag(); 27: 28: function hatena_footer_hundler_$md5_page(data) { 29: 30: if (data != null && data.count > 0) { 31: var parent_div = document.getElementById('hatena_bookmark_count_detail_$md5_page'); 32: 33: // ¥«¥¦¥ó¥¿²èÁü¤ò¼èÆÀ 34: var counter_a = document.createElement('a'); 35: counter_a.setAttribute('href', 'http://b.hatena.ne.jp/entry/' + '$permalink'); 36: var counter_img = document.createElement('img'); 37: counter_img.setAttribute('src', 'http://b.hatena.ne.jp/entry/image/' + '$permalink'); 38: counter_a.appendChild(counter_img); 39: 40: // ¤³¤Î¥¨¥ó¥È¥ê¡¼¤ò¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼(xx users) 41: // ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çfooter¤Î²¼¤Ëɽ¼¨¤¹¤ë 42: parent_div.appendChild(document.createTextNode('¤³¤Î¥¨¥ó¥È¥ê¡¼¤ò¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼(')); 43: parent_div.appendChild(counter_a); 44: parent_div.appendChild(document.createTextNode(')')); 45: 46: // ³Æ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Î¾ÜºÙ¤ò¥ê¥¹¥Èɽ¼¨¤µ¤»¤ë 47: var bookmarks = data.bookmarks; 48: for (var i=0, bookmark; bookmark = bookmarks[i]; i++) { 49: 50: var user_div = document.createElement('div'); 51: 52: // ¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¿¥¤¥à¥¹¥¿¥ó¥×¤Îɽ¼¨ 53: user_div.appendChild(document.createTextNode(bookmark.timestamp + ' ')); 54: 55: // ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤¿¥æ¡¼¥¶¤Îɽ¼¨ 56: var user_a = document.createElement('a'); 57: // yyyy/mm/dd hh:mm:ss¤«¤éyyyymmddʸ»úÎó¤òºîÀ®¤¹¤ë 58: var user_a_timestamp = bookmark.timestamp.substring(0, bookmark.timestamp.indexOf(' ', 0)); 59: while (true) { 60: var tmp_timestamp = user_a_timestamp; 61: user_a_timestamp = tmp_timestamp.replace('/', ''); 62: if (user_a_timestamp == tmp_timestamp) { 63: break; 64: } 65: } 66: user_a.setAttribute('href', 'http://b.hatena.ne.jp/' + bookmark.user + '/' + user_a_timestamp + '#bookmark-' + data.eid); 67: user_a.appendChild(document.createTextNode(bookmark.user)); 68: user_div.appendChild(user_a); 69: 70: // ¥³¥á¥ó¥È¤Îɽ¼¨ 71: if ( bookmark.comment != '' ) { 72: user_div.appendChild(document.createElement('br')); 73: user_div.appendChild(document.createTextNode(' - ' + bookmark.comment)); 74: } 75: 76: parent_div.appendChild(user_div); 77: } 78: } 79: jsr.removeScriptTag(); 80: } 81: </script> 82: HATENA_BOOKMARK_COUNT; 83: } 84: 85: return sprintf(HATEBUFOOTER_TEMPLATE, $retval); 86: }
´Êñ¤Ë²òÀ⤷¤Þ¤¹¡£
- 10,11¹ÔÌÜ
- ¤Ï¤Æ¤Ê¤¬Ä󶡤¹¤ë¼«Ê¬¤Î¥Ö¥í¥°¤ËÈï¥Ö¥Ã¥¯¥Þ¡¼¥¯¿ô¤òɽ¼¨¤¹¤ëµ¡Ç½¡¢¤ª¤è¤Ó¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¨¥ó¥È¥ê¡¼¾ðÊó¼èÆÀAPI¤òÍøÍѤ¹¤ë°Ù¤Ë¡¢Åö³ºWiki¥Ú¡¼¥¸¤ÎPermalink¤òÀ¸À®¤·¤Æ¤¤¤Þ¤¹¡Êξµ¡Ç½¡¢API¤ÏÂоݥڡ¼¥¸¤ÎPermalink¤ò°ú¿ô¤È¤·¤ÆÍ׵᤹¤ë¤¿¤á¡Ë¡£¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¨¥ó¥È¥ê¡¼¾ðÊó¼èÆÀAPI¤Ïʸ»ú%¤âurlencode¤µ¤ì¤¿URL¤òÍ׵᤹¤ë¤¿¤á¡¢Permalink¤ò2²óurlencode()¤Ë¤«¤±¤Æ¤¤¤Þ¤¹¡£
- 13¡Á15¹ÔÌÜ
- ¤Ï¤Æ¥ÖÅÐÏ¿¥Ü¥¿¥ó¤Î¥¿¥°¤òÀ¸À®¤·¤Æ¤¤¤Þ¤¹¡£¤Ï¤Æ¥ÖÅÐÏ¿µ¡Ç½¤Ï
http://b.hatena.ne.jp/append?$permalink4bookmark(¢«Permalink¤ò2²óurlencode()¤Ë¤«¤±¤¿URL)
¤Ë¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ç¼Â¸½¤µ¤ì¤Þ¤¹¡£
- 16¡Á83¹ÔÌÜ
- JSONP¤òÍøÍѤ·¤ÆÅö³ºWiki¥Ú¡¼¥¸¤ËÂФ·¤Æ£±·ï°Ê¾å¤Ï¤Æ¥Ö¤¬¤µ¤ì¤Æ¤¤¤¿¾ì¹ç¤Ë¤Ï¤Æ¥Ö¿ô¥«¥¦¥ó¥Èɽ¼¨¤È¾ÜºÙ¾ðÊó¤Îɽ¼¨¤ò¹Ô¤¤¤Þ¤¹¡£JSONPÍøÍÑÉô¤Î²òÀâ¤Ë¾ÜºÙ¤òµ½Ò¤·¤Þ¤¹¡£
- 85¹ÔÌÜ
- À¸À®¤·¤¿¥¿¥°¡Ê¡á¤Ï¤Æ¥Öfooter¤Î½ÐÎϡˤòÊÖ¤·¤Þ¤¹¡£
JSONPÍøÍÑÉô¤Î²òÀâ †
¥½¡¼¥¹²òÀâ¤Î16¡Á83¹ÔÌܤϲ¼µ¤ÎHTML¥¿¥°¤ÈJavaScript¥³¡¼¥É¤òÀ¸À®¤·¤ÆÊÖ¤¹°Ù¤Î¥í¥¸¥Ã¥¯¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£$md5_page¤Ï¼ÂºÝ¤Ë¤ÏÅö³ºWiki¥Ú¡¼¥¸¤Î¥Ú¡¼¥¸Ì¾¤òPHP¤Îmd5()´Ø¿ô¤Ç¥Ï¥Ã¥·¥å²½¤·¤¿Ãͤ¬»ØÄꤵ¤ì¤Þ¤¹¡£¤³¤ì¤Ï¥È¥Ã¥×¥Ú¡¼¥¸¤Ê¤É¤ÇÊ£¿ôWiki¥Ú¡¼¥¸¤¬Ê¤ó¤Çɽ¼¨¤µ¤ì¤ë¾ì¹ç¤Ë¡¢¤Ï¤Æ¥Öfooter¤Ë¤è¤Ã¤Æ³ÆWiki¥Ú¡¼¥¸Ã±°Ì¤Ë½ÐÎϤµ¤ì¤ëdiv¤Îid¤äJSONP¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô̾¤¬¥Ð¥Ã¥Æ¥£¥ó¥°¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Î»ÅÁȤߤǤ¹¡£
<script type="text/javascript" src="./js/jsr_class.js"></script> <div id="hatena_bookmark_count_detail_$md5_page"> </div> <script type="text/javascript"> var hatena_jsonp_base = 'http://b.hatena.ne.jp/entry/json/'; var jsr = new JSONscriptRequest(hatena_jsonp_base + '?url=$permalink4bookmark&callback=hatena_footer_hundler_$md5_page'); jsr.buildScriptTag(); jsr.addScriptTag(); function hatena_footer_hundler_$md5_page(data) { if (data != null && data.count > 0) { var parent_div = document.getElementById('hatena_bookmark_count_detail_$md5_page'); // ¥«¥¦¥ó¥¿²èÁü¤ò¼èÆÀ var counter_a = document.createElement('a'); counter_a.setAttribute('href', 'http://b.hatena.ne.jp/entry/' + '$permalink'); var counter_img = document.createElement('img'); counter_img.setAttribute('src', 'http://b.hatena.ne.jp/entry/image/' + '$permalink'); counter_a.appendChild(counter_img); // ¤³¤Î¥¨¥ó¥È¥ê¡¼¤ò¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼(xx users) // ¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Çfooter¤Î²¼¤Ëɽ¼¨¤¹¤ë parent_div.appendChild(document.createTextNode('¤³¤Î¥¨¥ó¥È¥ê¡¼¤ò¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤Æ¤¤¤ë¥æ¡¼¥¶¡¼(')); parent_div.appendChild(counter_a); parent_div.appendChild(document.createTextNode(')')); // ³Æ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤Î¾ÜºÙ¤ò¥ê¥¹¥Èɽ¼¨¤µ¤»¤ë var bookmarks = data.bookmarks; for (var i=0, bookmark; bookmark = bookmarks[i]; i++) { var user_div = document.createElement('div'); // ¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¿¥¤¥à¥¹¥¿¥ó¥×¤Îɽ¼¨ user_div.appendChild(document.createTextNode(bookmark.timestamp + ' ')); // ¥Ö¥Ã¥¯¥Þ¡¼¥¯¤·¤¿¥æ¡¼¥¶¤Îɽ¼¨ var user_a = document.createElement('a'); // yyyy/mm/dd hh:mm:ss¤«¤éyyyymmddʸ»úÎó¤òºîÀ®¤¹¤ë var user_a_timestamp = bookmark.timestamp.substring(0, bookmark.timestamp.indexOf(' ', 0)); while (true) { var tmp_timestamp = user_a_timestamp; user_a_timestamp = tmp_timestamp.replace('/', ''); if (user_a_timestamp == tmp_timestamp) { break; } } user_a.setAttribute('href', 'http://b.hatena.ne.jp/' + bookmark.user + '/' + user_a_timestamp + '#bookmark-' + data.eid); user_a.appendChild(document.createTextNode(bookmark.user)); user_div.appendChild(user_a); // ¥³¥á¥ó¥È¤Îɽ¼¨ if ( bookmark.comment != '' ) { user_div.appendChild(document.createElement('br')); user_div.appendChild(document.createTextNode(' - ' + bookmark.comment)); } parent_div.appendChild(user_div); } } jsr.removeScriptTag(); } </script>
¹½Â¤¤ÏÂ礤¯Ê¬¤±¤Æ£²¤Ä¤Ç¤¹¡£
- JSONscriptRequest¥¯¥é¥¹¤ò»È¤Ã¤¿JSONP¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤Î¼Â¹Ô
- JSONP¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤ÎÄêµÁ
JSONscriptRequest¥¯¥é¥¹¤ò»È¤Ã¤¿JSONP¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤Î¼Â¹Ô †
JSONP¤Ï¥Õ¥©¡¼¥Þ¥Ã¥È¤È¤·¤Æ¤ÏJSON(JavaScript Object Notation)¥Õ¥©¡¼¥Þ¥Ã¥È¤Î¥Ç¡¼¥¿¡Ê¥Æ¥¥¹¥È¡Ë¤ò¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô̾¤Ç³ç¤Ã¤¿¤â¤Î¤Ë¤¹¤®¤Þ¤»¤ó¡£Î㤨¤Ð¡¢
"bindings": [ {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} ]
¤Î¤è¤¦¤ÊJSON¥Ç¡¼¥¿¤ò¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô̾¤òhundler¤ÇJSONP²½¤¹¤ë¤È
hundler("bindings": [ {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"}, {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"}, {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"} ] );
¤È¤Ê¤ê¤Þ¤¹¡£
¤Ï¤Æ¤Ê¤¬Ä󶡤¹¤ë¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¨¥ó¥È¥ê¡¼¾ðÊó¼èÆÀAPI¤ÏJSON·Á¼°¤Ç¤Ï¤Æ¥Ö¾ðÊó¤òÊÖ¤·¤Æ¤¯¤ì¤Þ¤¹¡£¤½¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤Ï²¼µ¤ÎÎã¤Ë¤Ê¤ê¤Þ¤¹¡£
{ "count":"1", "url":"http://www.ark-web.jp/sandbox/wiki/index.php?%A1%D6%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8%C0%AE%B8%F9%A4%CE%A4%BF%A4%E1%A4%CE%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%C6%A5%B9%A5%C8%A4%CE%B4%AA%BD%EA%A1%D7%BB%B2%B2%C3%A5%EC%A5%DD%A1%BC%A5%C8", "bookmarks": [ { "timestamp":"2006/10/08 09:55:44", "comment":"", "user":"shinchi_xx", "tags":[] } ], "title":"\u300c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u6210\u529f\u306e\u305f\u3081\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30c6\u30b9\u30c8\u306e\u52d8\u6240\u300d\u53c2\u52a0\u30ec\u30dd\u30fc\u30c8 - ARK-Web SandBox Wiki", "eid":"2950166", "entry_url":"http://b.hatena.ne.jp/entry/http://www.ark-web.jp/sandbox/wiki/index.php?%A1%D6%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8%C0%AE%B8%F9%A4%CE%A4%BF%A4%E1%A4%CE%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%C6%A5%B9%A5%C8%A4%CE%B4%AA%BD%EA%A1%D7%BB%B2%B2%C3%A5%EC%A5%DD%A1%BC%A5%C8", "screenshot":"http://screenshot.hatena.ne.jp/images/120x90/c/4/2/3/3/95c3fdc54d5a13047ce29c77f7a78df13aa.jpg" }
¤Þ¤¿¡¢°ú¿ô¤Ç¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô̾¤ò»ØÄꤹ¤ë¤³¤È¤ÇJSONP²½¤·¤¿¥Æ¥¥¹¥È¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£²¾¤Ë¤³¤ÎÎã¤Ç¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô̾¤òhundler¤È¤¹¤ë¤È
hundler( { "count":"1", "url":"http://www.ark-web.jp/sandbox/wiki/index.php?%A1%D6%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8%C0%AE%B8%F9%A4%CE%A4%BF%A4%E1%A4%CE%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%C6%A5%B9%A5%C8%A4%CE%B4%AA%BD%EA%A1%D7%BB%B2%B2%C3%A5%EC%A5%DD%A1%BC%A5%C8", "bookmarks": [ { "timestamp":"2006/10/08 09:55:44", "comment":"", "user":"shinchi_xx", "tags":[] } ], "title":"\u300c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u6210\u529f\u306e\u305f\u3081\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30c6\u30b9\u30c8\u306e\u52d8\u6240\u300d\u53c2\u52a0\u30ec\u30dd\u30fc\u30c8 - ARK-Web SandBox Wiki", "eid":"2950166", "entry_url":"http://b.hatena.ne.jp/entry/http://www.ark-web.jp/sandbox/wiki/index.php?%A1%D6%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8%C0%AE%B8%F9%A4%CE%A4%BF%A4%E1%A4%CE%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%C6%A5%B9%A5%C8%A4%CE%B4%AA%BD%EA%A1%D7%BB%B2%B2%C3%A5%EC%A5%DD%A1%BC%A5%C8", "screenshot":"http://screenshot.hatena.ne.jp/images/120x90/c/4/2/3/3/95c3fdc54d5a13047ce29c77f7a78df13aa.jpg" } );
¤¬ÊÖ¤µ¤ì¤Þ¤¹¡£
JSONP¤Ï¤½¤Î¤Þ¤Þ¤Ç¤Ïñ¤Ë¥Æ¥¥¹¥È¤Ë²á¤®¤Ê¤¤¤¿¤á¡¢¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤òµ¯Æ°¤·¤ÆJSON¥Ç¡¼¥¿¤ò¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤ËÅϤ¹»ÅÁȤߤ¬É¬ÍפǤ¹¡£¤³¤Î»Å»ö¤ò¤¹¤ë¤¿¤á¤Ë¡¢Jason Levitt»á¤¬ºîÀ®¡¢¸ø³«¤µ¤ì¤Æ¤¤¤ëJSONscriptRequest¥¯¥é¥¹¤òÍøÍѤ·¤Æ¤¤¤Þ¤¹¡£
¤½¤Î²Õ½ê¤¬
<script type="text/javascript" src="./js/jsr_class.js"></script> <div id="hatena_bookmark_count_detail_$md5_page"> </div> <script type="text/javascript"> var hatena_jsonp_base = 'http://b.hatena.ne.jp/entry/json/'; var jsr = new JSONscriptRequest(hatena_jsonp_base + '?url=$permalink4bookmark&callback=hatena_footer_hundler_$md5_page'); jsr.buildScriptTag(); jsr.addScriptTag();
¤Ë¤Ê¤ê¤Þ¤¹¡£
jsr_class.js¤ËJSONscriptRequest¥¯¥é¥¹¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤ò¤Þ¤º¥í¡¼¥É¤·¤Þ¤¹¡£
¼¡¤Ë¡¢JSONscriptRequest¥ª¥Ö¥¸¥§¥¯¥È¤ò¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¨¥ó¥È¥ê¡¼¾ðÊó¼èÆÀAPI¤Ø¤Î¥ê¥¯¥¨¥¹¥ÈURL¤ò°ú¿ô¤Ë¤·¤ÆºîÀ®¤·¤Þ¤¹¡£
°ú¿ô¤ËÍ¿¤¨¤¿URL¤Îcallback¥Ñ¥é¥á¡¼¥¿¤Ë»ØÄꤷ¤¿Ãͤ¬¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô̾¤Ë¤Ê¤ê¤Þ¤¹¡£
JSONscriptRequest¥ª¥Ö¥¸¥§¥¯¥È(jsr)¤ÏbuildScriptTag()¤Ç¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤ò¼Â¹Ô¤¹¤ëscript¥¿¥°¤òÀ¸À®¤·¡¢addScriptTag()¤Ç¥Ú¡¼¥¸¤ÎheadÆâ¤Ë¤½¤Îscript¥¿¥°¤òËä¤á¹þ¤ß¤Þ¤¹¡£
°Ê¾å¤Ë¤è¤Ã¤Æ¡¢¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¨¥ó¥È¥ê¡¼¾ðÊó¼èÆÀAPI¤¬ÊÖ¤¹JSON¥Ç¡¼¥¿¤ò»ØÄꤷ¤¿¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤Ç¼õ¤±¤Æ½èÍý¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
JSONP¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤ÎÄêµÁ †
¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô¤Î°ú¿ô¤Ë¤Ï¤Ï¤Æ¤Ê¥Ö¥Ã¥¯¥Þ¡¼¥¯¥¨¥ó¥È¥ê¡¼¾ðÊó¼èÆÀAPI¤¬ÊÖ¤¹JSON¥Ç¡¼¥¿¤¬³ÊǼ¤µ¤ì¤Þ¤¹¡£Àè¤ÎÎã¤Ç¸À¤¨¤Ð¡¢
{ "count":"1", "url":"http://www.ark-web.jp/sandbox/wiki/index.php?%A1%D6%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8%C0%AE%B8%F9%A4%CE%A4%BF%A4%E1%A4%CE%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%C6%A5%B9%A5%C8%A4%CE%B4%AA%BD%EA%A1%D7%BB%B2%B2%C3%A5%EC%A5%DD%A1%BC%A5%C8", "bookmarks": [ { "timestamp":"2006/10/08 09:55:44", "comment":"", "user":"shinchi_xx", "tags":[] } ], "title":"\u300c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u6210\u529f\u306e\u305f\u3081\u306e\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u30c6\u30b9\u30c8\u306e\u52d8\u6240\u300d\u53c2\u52a0\u30ec\u30dd\u30fc\u30c8 - ARK-Web SandBox Wiki", "eid":"2950166", "entry_url":"http://b.hatena.ne.jp/entry/http://www.ark-web.jp/sandbox/wiki/index.php?%A1%D6%A5%D7%A5%ED%A5%B8%A5%A7%A5%AF%A5%C8%C0%AE%B8%F9%A4%CE%A4%BF%A4%E1%A4%CE%A5%BD%A5%D5%A5%C8%A5%A6%A5%A7%A5%A2%A5%C6%A5%B9%A5%C8%A4%CE%B4%AA%BD%EA%A1%D7%BB%B2%B2%C3%A5%EC%A5%DD%A1%BC%A5%C8", "screenshot":"http://screenshot.hatena.ne.jp/images/120x90/c/4/2/3/3/95c3fdc54d5a13047ce29c77f7a78df13aa.jpg" }
¤¬³ÊǼ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Îã¤Ç¤Ï°ú¿ô̾data¤Ç¼õ¤±¤Æ¤¤¤ë¤Î¤Ç¡¢Î㤨¤Ð¡¢Åö³ºWiki¥Ú¡¼¥¸¤ËÂФ¹¤ë¤Ï¤Æ¥Ö¿ô¤ò¼èÆÀ¤·¤¿¤¤¾ì¹ç¤Ïdata.count¤Ç¼èÆÀ¤Ç¤¤Þ¤¹¡£