Tag: @niftyクリップ Javascript ブックマークレット

google/Yahoo!の検索キーワードをタグにして登録

  • 選択した文字列がコメントにはいる
  • ↓右クリックしてお気に入り/ブックマークに登録

通常版(IE/Firefox用)

  • 引用部分を「【引用:〜】」で囲む
  • Safari/Operaは文字化けする
クリップに追加
javascript:(
function(){
	function e(s){
		return(encodeURIComponent(s))
	}
	var d=document,w=window,l=location,t='',c='',a,i;
	if(d.referrer.match(/(google|yahoo).*[\&\?](q|p)=([^\&]+)/)){
		a=decodeURIComponent(RegExp.$3).replace(/ /g,'+').split('+');
		for(i=0;i<a.length;i++){
			t=t+'&tagname='+e(a[i])
		}
	}
	if(d.selection){
		c=d.selection.createRange().text
	}
	if(d.getSelection){
		c=d.getSelection()
	}
	l.href='http://clip.nifty.com/create?url='+e(l.href)+'&title='+e(d.title)+t+'&comment='+e(c!=''?'【引用:'+c+'】':c)
}
)()

通常版2(IE/Firefox/Opera用)

  • 引用部分は行頭に「>」を付加
  • Operaはキーワード区切りは半角スペース限定
クリップに追加
javascript:(
function(){
	function e(s){
		return(encodeURIComponent(s))
	}
	var d=document,w=window,l=location,t='',c='',a,i;
	if(d.referrer.match(/(google|yahoo).*[\&\?](q|p)=([^\&]+)/)){
		a=decodeURIComponent(RegExp.$3).replace(/ /g,'+').split('+');
		for(i=0;i<a.length;i++){
			t=t+'&tagname='+e(a[i])
		}
	}
	if(d.selection){
		c=d.selection.createRange().text
	}
	if(d.getSelection){
		c=d.getSelection()
	}
	l.href='http://clip.nifty.com/create?url='+e(l.href)+'&title='+e(d.title)+t+'&comment='+e(c!=''?'>'+c.replace(/\n/g,'\n>'):c)
}
)()

通常版(Firefox/Safari/Opera用)

  • 引用部分は行頭に「>」を付加
  • Safari/Operaはキーワード区切りは半角スペース限定
クリップに追加
javascript:(
function(){
	function e(s){
		return(encodeURIComponent(s))
	}
	var d=document,w=window,l=location,t='',c='',a,i;
	if(d.referrer.match(/(google|yahoo).*[\&\?](q|p)=([^\&]+)/)){
		a=decodeURIComponent(RegExp.$3).replace(/ /g,'+').split('+');
		for(i=0;i<a.length;i++){
			t=t+'&tagname='+e(a[i])
		}
	}
	if(w.getSelection){
		c=w.getSelection().toString()
	}
	l.href='http://clip.nifty.com/create?url='+e(l.href)+'&title='+e(d.title)+t+'&comment='+e(c!=''?'>'+c.replace(/\n/g,'\n>'):c)
}
)()

js外部ファイル版(IE/Firefox/Safari/Opera用)

  • 引用部分を「【引用:〜】」で囲む
  • SafariでY!検索結果がeuc-jpの場合はタグを設定できない
クリップに追加
javascript:(
function(){
	var s=document.createElement('script');
	s.charset='utf-8';
	s.src='http://null.style.coocan.jp/clip/bookmarklet.js';
	document.body.appendChild(s)
}
)();

外部ファイルのソース

  • 文字コードはutf-8
(function(){
	function e(s){
		return(encodeURIComponent(s))
	}
	var d=document,w=window,l=location,r=d.referrer,t='',c='',a,i;
	if(r.match(/(google|yahoo).*[\&\?](q|p)=([^\&]+)/)){
		if(!((r.match(/yahoo.*[\&\?]ei=EUC-JP/)) && (navigator.userAgent.match(/Safari/)))){
			a=decodeURIComponent(RegExp.$3).replace(/ /g,'+').split('+');
			for(i=0;i<a.length;i++){
				t=t+'&tagname='+e(a[i])
			}
		}
	}
	if(d.selection){
		c=d.selection.createRange().text
	}
	if(d.getSelection){
		c=d.getSelection()
	}
	if(w.getSelection){
		c=w.getSelection().toString()
	}
	l.href='http://clip.nifty.com/create?url='+e(l.href)+'&title='+e(d.title)+t+'&comment='+e(c!=''?'【引用:'+c+'】':c)
}
)()

コメントでも

  • Y!対応。ただし、トップページからの検索はNG。検索結果画面からの検索はOK。。。微妙 -- null? 2006-07-20 (木) 00:34:21
  • @searchはキーワードがutf-8じゃないからダメっぽいな -- null? 2006-07-20 (木) 00:52:07
  • 「クリップに追加2」で、cgiでコード変換しながら中継すると@searchもいけるな。(なぜかIEでは動かない。Firefoxでどぞ) -- null? 2006-07-20 (木) 14:35:03
  • IEのブックマークレットって512byteくらいが限界なのか?? -- null? 2006-07-21 (金) 18:47:26
  • 508文字らしい。他にもよろしくない書き方があったので修正 -- null? 2006-07-21 (金) 19:03:51
  • http://www.teria.com/~koseki/memo/bookmarklets/tips.html -- null? 2006-07-21 (金) 19:12:43
  • 無名ファンクション内でvarを省略するとグローバルになるって書いてあるのに気づいてなかった。修正
    • 508文字越えた。IEつかえね
  • いろいろ圧縮してみた
  • 外部ファイル化してみた
  • safariだとY!検索結果画面からの検索はNG。なんでだ
    • euc-jpがまずいらしいのでjsをあわせてみたけどだめだった
      • euc-jpをdecodeした文字列を扱おうとするとだめなのかな

Last-modified: 2008-05-10 (土) 01:21:20 (3449d)