【2ちゃんねる用ブラウザ】ギコナビでスレッド中の単語を選択してGoogleで検索するには【その3】

20111539

下記の記事で、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]

20111540
そして、例によってIE MenuExtを利用しコンテキストメニューにスクリプトを追加して、ギコナビ上で記事中のテキスト選択時に右クリックするとメニューから選べるように設定します。

これで、選択文字列が途切れること無く検索できるようになり一層便利になりました。

詳しい設定の方法などは過去の記事を参照して下さい。

20111541
結果として、ギコナビ中で文字列を選択して

20111546
右クリックでメニューからググる3(好きな文字で登録できます)を選択すると

20111543
こんな風に選択した文字列で検索できます。

(Visited 219 times, 1 visits today)

タグ :