« jbooklet をアップデートしました | トップページ | 右クリックで はてなブックマーク、ついでに del.icio.us (改訂版) »
2005.06.09
右クリックで blockquote (改訂2版)
「右クリックで blockquote (改訂版)」の更なる改訂版です。
今回の改訂で、オンラインRSSリーダ Bloglines で読んでいる記事をそのまま引用、言及できるようにしてみました。オリジナルの記事(Webページ)を参照することなく、そのまま引用、言及できるのがポイントです。 なお、Bloglines のモードは、英語でも、日本語でも構いません。
Bloglines 以外に、はてなRSSにも対応しようと思ったんですが、はてなRSS の場合は、記事本文中にはてなダイアリーキーワードへのリンクが含まれるため、Bloglines に対応のに使った方法がそのままでは使えず、ちょっとやっかいなので、対応するのを見送りました。
それでは、以下、ソースです。
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"> <script type="text/javascript" language="JavaScript"> // 「右クリックで blockquote」 // written by H.Tsujimura (tsupo@na.rim.or.jp) // // Version 1.2 9 Jun 2005 Bloglines で読んでいる記事をそのまま引用 // できるようにした // Version 1.1 14 Jan 2005 '*' が記事(html)のタイトルに含まれるとタ // イトルが正しく取得できないという不具合 // (IEコンポーネントの仕様?)への対策を実施 // Version 1.0 25 Feb 2004 最初の版 function translateString(str) { var result = ""; var len = str.length; var rep = 0; var i; for ( i = 0; i < len; i++ ) { if ( str.charAt(i) == '\n' ) { if ( rep == 0 ) result += '<br />'; rep++; continue; } else if ( str.charAt(i) == '\r' ) continue; rep = 0; if ( str.charAt(i) == '>' ) result += ">"; else if ( str.charAt(i) == '<' ) result += "<"; else if ( str.charAt(i) == '&' ) result += "&"; else if ( str.charAt(i) == '"' ) // " result += """; else result += str.charAt(i); } return ( result ); } obj = external.menuArguments; // 右クリック時の引数のオブジェクトの参照 page_url = obj.document.URL; // ページのURL title_txt = obj.document.title; // タイトル文字列 cite_txt = obj.document.selection.createRange().text; // 引用文字列 inn = obj.document.body.innerHTML; if ( (cite_txt != "") && (cite_txt.length > 0) ) { if ( page_url.match("http://www.bloglines.com/myblogs_display") || page_url.match("http://bloglines.com/myblogs_display") ) { // for Bloglines loc = inn.indexOf(cite_txt); if ( loc > 0 ) { locH3 = inn.substring(0,loc).lastIndexOf("a title="); if ( locH3 > 0 ) { targetString = inn.substring(locH3,loc); locHREF = targetString.indexOf("href="); if ( locHREF > 0 ) { targetHREF = targetString.substring(locHREF + 7,targetString.indexOf('\\" target=')); targetTITLE = targetString.substring(targetString.indexOf('" target=')+16,targetString.indexOf("</a>")); if ( targetHREF != "" ) page_url = targetHREF; if ( targetTITLE != "" ) title_txt = targetTITLE; } } } } } if ( title_txt == "[object]" ) { /* title に '*' が含まれている場合にうまく取り込めない現象への対策 */ str = obj.document.body.parentNode; inn = str.innerHTML; s = inn.indexOf("<TITLE>"); e = inn.indexOf("</TITLE>"); if ( (s > 0) && (e > s) ) title_txt = inn.substring(s + 7, e); } page_str = ""; len = page_url.length; for ( i = 0; i < len; i++ ) { if ( page_url.charAt(i) == '&' ) page_str += "&"; else page_str += page_url.charAt(i); } qTag = '<blockquote cite="' + page_str + '"><p>' + translateString(cite_txt) + '</p><cite><a href="' + page_str + '">' + translateString(title_txt) + '</a></cite></blockquote>'; x = prompt('',qTag); </script>
関連記事: 右クリックで blockquote (改訂版)、右クリックで blockquote
投稿者: tsupo 2005.06.09 午後 02:18
| 固定リンク
|
|
|
|
|
アマゾンわくわく探検隊
トラックバック
この記事のトラックバックURL:
この記事へのトラックバック一覧です: 右クリックで blockquote (改訂2版):