なんでも検索(ネットサーフィン用)Yahoo連動検索プラグイン 3.6を作成しました


# 概説
このプラグインは、Webページ上のテキストをカーソルセレクトして、そのテキストでYahoo検索を実行するものです。ネットーサーチをしているときに意味を知りたいと思う時に使うと便利です。毎回、yahoo検索のためにページを開くのが面倒な場合は特に有効です



# 対象ページ

一般的なWebサイトで動作します。但し、PDFファイルを開いたWebサイトでは使用できません。
なお、このプラグインは、Google社から「Established Publisher」（定評のあるパブリッシャー）バッジを与えられています。

### インストール
下記のサイトからインストールできます(無料)。
[Chrome WebStore](https://chrome.google.com/webstore/detail/yahoo%E9%80%A3%E5%8B%95%E6%A4%9C%E7%B4%A2%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3-35/onedekeknehkcfhfpaafjnjihdihgjen?hl=ja)

# プラグインのスクリプト(content.js)

以下は、content.jsスクリプトです。極くわずかなステップ数です。
background.jsスクリプトは使用していません。

```javascript:content.js
//*****************************************************
//content.js
//yahoo検索
//プラグインをロード時にpopup_dialog要素を動的追加
//*****************************************************
if(typeof popup_dialog==='undefined'){
		var popup_dialog = `<div id="popup_dialog" title="確認メッセージ" style="display:none;">
<p id="popup_mess"></p></div>`;
	$("body").append(popup_dialog);

}
//*****************************************************
//yahoo()
//*****************************************************
var w = null;
function yahoo(k_w) {
	w = null;
    var char_ = "";
    if (document.all) {
        char_ = document.charset;
    } else {
        char_ = document.characterSet;
    }
    if (char_ === "utf-8" || char_ === "UTF-8") {

    } else {
    }

    k_w = k_w.replace(/&nbsp;/g, ' ');

    if (typeof (k_w) !== "undefined") {
        var gg = 'http://search.yahoo.co.jp/search?ei=' + char_ + '&p=' + k_w;
        
        if(w === undefined||w===null){
	        w = window.open(gg, '_blank');
    	    w.focus();        
        }else{
        	w.close();
        	w = window.open(gg, '_blank');
        	w.focus();
        
        }
        
        window.getSelection().empty();
    }
}
//*****************************************************
//リスナー登録
//テキスト選択後のイベント(マウスアップ)
//*****************************************************
//Ctrl+左ボタンクリック
document.addEventListener(`mouseup`, (e) => {
        //
	if (event.ctrlKey) {
		//
		//
       //セレクト&サーチ
        var text = document.getSelection();
        if(text.type==="None"){
        		return false;
        }
        
        //if(typeof text.anchorNode.data !== null && typeof text.anchorNode.data !== "undefined" && text.anchorOffset !== text.focusOffset){
			//フォーカスした文字を取得
			if(typeof text.focusNode.data==='undefined'){
					return false;
			}
			
			var tt = text.focusNode.data.substring(text.anchorOffset,text.focusOffset);
			if(tt===""){
				return false;
			}

			
     		$("#popup_mess").html("「"+tt+"」で検索します。");
        	//*****************************************************
        	//ダイヤログ表示
        	//*****************************************************
        	$('#popup_dialog').dialog({
                        autoOpen: true,
                        title: '文言サーチポップアップ',
                        closeOnEscape: true,
                        width:'500px',
                        modal: true,
                        buttons: [        // ボタン名 : 処理 を設定
                          {
                            text: 'OK',
                            click: function(){
 
                            	yahoo(tt);
 
                                // ダイアログを閉じる
	                            $(this).dialog('close');
								return false;
                              	
                            }
                          },

                          {
                            text: 'キャンセル',
                            click: function(){
	                            // ダイアログを閉じる
	                              
	                            $(this).dialog('close');
								return false;	
                              
                            }
                          }
                        ]
            });
            $("div[role=dialog]").css({"background-color":"lightblue","z-index":"1000","position": "fixed", "top": "100px"});                                    

            $("#popup_dialog").dialog("open");
            $(".ui-dialog").draggable();
            //
			window.getSelection().removeAllRanges();
  			
	}
    return false;
});  			
```
これだけのステップでyahooサーチを起動するだけです。
# 使い方
任意のWebページで、テキストをマウスで選択し、Ctrlキーを押しながらマウスの左ボタンをクリックします。
すると、ポップアップ画面が表示されますので、そこでOKボタンをクリックすると、別タブでyahooサーチが開き、検索結果が表示されます。


プラグインをインストールして使ってみると結構、便利に使えると思います。