« 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版):



