【2ちゃんねる用ブラウザ】ギコナビでスレッド中の単語を選択してGoogleで検索するには【その3】
下記の記事で、2ちゃんねる専用ブラウザギコナビで記事中の選択した文字列を、右クリックでメニューからググれるようにしましたが、このスクリプトには文字列中に空白文字があると検索文字列がそこで途切れてしまうという欠陥があって困ることがあったのですが、放置していました。今回はそれの修正です。
【2ちゃんねる用ブラウザ】ギコナビでスレッド中の単語を選択してGoogleで検索するには【その2】 – KUMA TYPE
結果として対応後のソースコードは下の様になります。
◯google3.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
<SCRIPT language="VBScript">
‘選択文字列をGoogleで検索
Dim strSelHtmlText
Dim exDoc
Set exDoc = external.menuArguments.document
‘選択部分の HTML を取得
strSelHtmlText = exDoc.selection.createRange().htmlText
‘JavascriptでURLエンコード
Set objSC = CreateObject("ScriptControl")
objSC.Language = "JScript"
Set objJS = objSC.CodeObject
strEncodeURL = objJS.encodeURI(strSelHtmlText)
‘選択部分があればgoogleで検索
If Len(strSelHtmlText) Then
Dim sh
Set sh = CreateObject("WScript.Shell")
Call sh.Run("http://www.google.co.jp/search?hl=ja&lr=&num=50&q=" & strEncodeURL)
End If
Set exDoc = Nothing
</SCRIPT>
<!–
2012,10.16 空白があると検索文字列が途切れるのを修正。
–>
違いは前のソースと比べれば一目瞭然です。
修正点としては、検索文字列が空白のところで途切れてしまうのでそれの対応ですが、文字列をエスケープすることで対応しています。ただし、VBScriptにはURLをエンコードする関数が用意されていないらしいので、Javascriptでエンコードしています。ちなみにVBScriptにあるEscape関数だと日本語が「%u8D64%u672D%u306BCUBE U9GT5」という風にエンコードされてしまうのでうまく検索できなくなってしまいます。
参考にさせて頂いたのは下記のサイトです。
メモいろいろ: [VBS/VBA] URIエンコード(%エンコード)[http://orenolog.blogspot.jp/2008/02/vbsvba-uri.html]
そして、例によってIE MenuExtを利用しコンテキストメニューにスクリプトを追加して、ギコナビ上で記事中のテキスト選択時に右クリックするとメニューから選べるように設定します。
これで、選択文字列が途切れること無く検索できるようになり一層便利になりました。
詳しい設定の方法などは過去の記事を参照して下さい。
右クリックでメニューからググる3(好きな文字で登録できます)を選択すると
タグ :