ソース分析

ソース分析について


URLエンコード

%20 半角スペース
%7B {
%7D }
%22 "
%3c <

選択テキストの取得

IEとその他で取得方法が異なります。

if (navigator.appName.indexOf('Internet Explorer') != -1) {
	Sel=document.selection.createRange().text;
 } else {
	 Sel=document.getSelection();
 }

テキスト選択中かどうかの判定

選択中かどうか

if (Sel)

選択していないかどうか

if (!Sel)

プロンプト入力

void()で囲むのがポイント。日本語部分はエンコードする。

void(elName=prompt('%E4%BD%95%E3%81%AE%E3%82%BF%E3%82%B0?',''));

if (!Sel) { void(Sel=prompt('URLを入力してください:','')) }

URL補完

http://が付いていない場合は補完します。

また、ttp://のようにhを書いていないURLの場合は先頭にhを補完します。

if (Sel.indexOf('ttp://') == 0) { Sel = 'h' + Sel; }
if (Sel.indexOf('http://') != 0) { Sel = 'http://' + Sel; }

URLへジャンプ

指定URLへジャンプするには、locationのhrefプロパティにURLをセットします。

location.href=URL;
 

特定タグの要素をすべてスタイル変更する

	theEls=document.getElementsByTagName(elName);
	for(i=0;i<theEls.length;i++){
		void(theEls[i].style.border='solid 1px red');
		void(theEls[i].style.borderColor=brdrClr)
	}

文字列の末尾から検索

lastIndexOf() 見つからない場合は0ではなくてー1であることに注意

location.pathname 現在ページURLのパス名を取得する。設定するとパス移動する。

substring

length

現在ページのURL

location.href

"http://"の部分を除去するには

location.href.replace('http://','')

選択した部分をURLに渡す

選択した部分を取得するロジックがIEとそれ以外で異なることに注意。

また、ブラウザによっては、離れた領域のテキストを複数選択できるものもある。

選択テキスト抽出部

この部分は共通である。

 

	var text='';
	var txt;
	var docs=new Array(32);
	docs[0]=window;

	for (var docsHead=docsTail=0;docsHead>=docsTail;docsTail++) {

		try {
			if (navigator.appName.indexOf('Internet Explorer')!=-1) {
				txt=docs[docsTail].document.selection.createRange().text;
	 		} else {
				txt=docs[docsTail].document.getSelection().toString();
	 		}
		} catch (e) {
			txt='';
	 	}

		if (text=='') {
			text=txt;
	 	} else {
			text=text+' '+txt;
	 	}

		if (docs[docsTail].frames!=null) {
			for (var i=0;i<=docs[docsTail].frames.length-1;i++) {
				if (!(docs[docsTail].frames[i] instanceof Window)) {
					docs[++docsHead]=docs[docsTail].frames[i];
	 			}
			}
		}
	}

	if (text=='') text=null;

検索URL部

この部分はサービスごとに異なる。

Wikipedia

	if (text) {
		location.href='http://ja.wikipedia.org/w/wiki.phtml?search='+encodeURI(text)+'&go=%E8%A1%A8%E7%A4%BA';
 	} else {
		location.href='http://ja.wikipedia.org/';
 	}

google

	if (text) {
 		location.href='http://www.google.co.jp/search?q='+encodeURI(text)+'&ie=UTF-8&oe=UTF-8&hl=ja&lr=lang_ja';
 	} else {
 		location.href='http://www.google.co.jp/';
 	}

goo辞書

	if (text) {
		kind=(text.match('[a-zA-Z ]') ? 'ej' : 'je');
 		location.href='http://dictionary.goo.ne.jp/search.php?MT='+text+'&kind='+kind+'&FROM=USER';
 	} else {
		location.href='http://dictionary.goo.ne.jp/index.html?kind=ej&mode=0';
 	} 

↑このページの先頭へ