2010.01.03 Sunday | 11:57

  ブックマークレット : 手書きブログのタイトルにURLが書かれている場合にそこへ移動する プログラマ

複雑な処理を行うブックマークレットは、単独では文字数制限があるので、
外部の .js ファイルに委ねます。

ページの中から、BlogTitlePane というクラスを持つ DIV を探して、
見つけたら、その中が http で始まっているかを確認して、確認の上移動します。
※ コメントにしてある部分は、新しいウインドウで開く方法です

以下はコードの本体です。
if (!window.lightbox_tjump) {
(
function() {
	window.lightbox_tjump = 
	{
		version: 1.01
		,
		init : function( ) {
			var target = document.getElementsByTagName("DIV");
			var count = target.length;
			var i,work;
			for( i = 0; i < count; i++ ) {
				work = target[i].className + "";
				work = work.toUpperCase();
				if ( work == "BLOGTITLEPANE" ) {
					if ( (target[i].innerHTML).substr(0,4) == 'http' ) {
						if ( confirm(target[i].innerHTML) ) {
							window.location = target[i].innerHTML;
						}
//						window.open(target[i].innerHTML);
					}
					break;
				}
			}
		}
	};
}
)();
}

lightbox_tjump は、ほぼユニークであればいいタイトルのようなもので、
window オブジェクトのプロパティに処理を埋め込む方法です。
ブックマークレツトはその特性上、同時に複数のものを実行する事は無い
ので極端な話、lightbox_tjump は常に同じでも問題は無いと思います。

ただ、管理上は別にしておいたほうが良いとは思いますが。

ブックマークレットの埋め込みはこのユニーク名とURL以外はほぼ一定です。
▼ ブックマークレットの登録
手書きブログタイトルジャンプ
<a href="javascript:var mylib=document.createElement('script');if(!window.lightbox_tjump){mylib.setAttribute('src','http://winofsql.jp/tegaki_tjump.js');document.body.appendChild(mylib);(function(){if(window.lightbox_tjump){lightbox_tjump.init();}else{setTimeout(arguments.callee);}})();}else{lightbox_tjump.init();}void(mylib);"onclick='	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {		event.returnValue = false;		alert("右クリックしてポップアップメニューからお気に入りに追加して下さい   ");	}	else {		event.preventDefault();		alert("右クリックしてポップアップメニューからブックマークして下さい   ");	}'>手書きブログタイトルジャンプ</a>