由々識の気まぐれ日記

JavaScriptプログラマ「由々識」が時々書くするブログ。 内容はJavaScript全般、Sleipnir関係。

Sleipnir から POST でページを開いたり、Referer ,UserAgent に任意の値を指定する

Sleipnir の検索バーは POST メソッドでページを開けるのに、アドレスバーやお気に入りからは POST メソッドでページを開くことができません。
検索バーから以外でページを開く際に POST 送信でページを開けたらと思ったことはないでしょうか。
また、Sleipnir でページを開く際に Referer や User-Agent を任意の値に指定して開きたいと思ったことはないでしょうか。
今回はこれらの機能を Sleipnir に実装する方法を紹介したいと思います。


1.スクリプトを用意する
「カスタムアクション(Ver.1.04 以降)」スクリプトをダウンロードします。
2.Sleipnir オプションでスクリプトを使えるようにする
Sleipnirオプション「クライアント|全般」の「スクリプトによるクライアントの操作を許可する」にチェックを入れる。
(NT 系の OS でこの操作をするには Administrator 権限が必要です)
3.スクリプトを設置する
ダウンロードした「カスタムアクション(slsc_CustomAction.zip)」を解凍して、「カスタムアクション.js」を取り出します。
{Sleipnirをインストールしたフォルダ}scripts に「$AddressBar」(適当で良い)という名前のフォルダを新規作成し、
そのフォルダの中に「カスタムアクション.js」を入れます。
(拡張子が「.js」であれば、ファイル名は何でも良い)
4.URI アクションに登録する

メニューバー「ツール」の「URI アクションの有効」を有効にし、
メニューバー「ツール」の「URI アクションマネージャ」を開きます。

『URI アクションマネージャ』の「追加」ボタンを押し、『URI アクションの追加』ウィンドウを開きます。
URI(U):」 欄に 「http*@post:*」を入力。
アクション(A):」欄で「カスタム」を選択して『実行ファイルを選択』ダイアログで、
「3.」で設置したスクリプトを選択してください。
選択したら、『URI アクションの追加』ウィンドウの [OK] ボタンを押してください。

再度『URI アクションマネージャ』の「追加」ボタンを押し、『URI アクションの追加』ウィンドウを開きます。
URI(U):」 欄に 「http*@referer:*」を入力。
アクション(A):」欄で「カスタム」を選択して『実行ファイルを選択』ダイアログで、
「3.」で設置したスクリプトを選択してください。
選択したら、『URI アクションの追加』ウィンドウの [OK] ボタンを押してください。

再々度『URI アクションマネージャ』の「追加」ボタンを押し、『URI アクションの追加』ウィンドウを開きます。
URI(U):」 欄に 「http*@user-agent:*」を入力。
アクション(A):」欄で「カスタム」を選択して『実行ファイルを選択』ダイアログで、
「3.」で設置したスクリプトを選択してください。
選択したら、『URI アクションの追加』ウィンドウの [OK] ボタンを押してください。

もし、Sleipnir を複数のユーザーで使用している場合は、他のユーザーで『4.』のみを設定してください。
以上で登録・設定は終了です。
試しに、アドレスバーに
http://www.sleipnir-wiki.jp/index.php?cmd=search@post:encode_hint=ぷ&type=AND&word=スクリプト
と入力してページを開いてみてください。
どうでしょうか。無事に Sleipnir オンラインデータベース で 「スクリプト」の検索結果が表示されれば成功です。

URL を見ていただければわかりますが、POST 送信の方法は、
URLの末尾に @post: を付けてその後ろに POST データを 「&」で区切って指定するだけです。
これで、POST 送信の検索サイトでの検索結果ページがお気に入りに登録できるようになりますね。

え?、一般ユーザーには POST 送信される際の POST データが見えないから使えないですって?

そんな時は、拙作のスクリプト「ソースを正規表現で置換」を使いましょう。
検索サイトの検索ワード入力フォームのあるページを開いてこのスクリプトを実行してください。
“置換の為の正規表現”に「method=post」して [OK] ボタンを押し、
次に“置換後のテキスト”に「method=get」を入力して [OK] ボタンを押せばページ内のフォームが全て Get メソッドに変わります。
そうして、フォームに検索ワードを入力して検索を実行すれば、アドレスバーに URI が表示されますので、
この URI 中の『?』を『@post:』に変えれば、Sleipnir 専用 POST 送信 URI の完成です。

ちなみに、アドレスバーやお気に入りからだけでなく、ページ内リンクでも使えます。

「え? ページ内のリンクからも!?」

開けるんです。
試しに以下のリンクをクリックしてみてください。

Sleipnir オンラインデータベース で「スクリプト」を検索(POST 送信)

Sleipnir オンラインデータベース で 「スクリプト」の検索結果ページが開いたはずです。
え? 空ページが余分に開いたですって?
残念ながらそれは URI アクションの仕様ですので、開かないようにはできまえせん。


では次に、Referer や User-Agent の送信の仕方です。
これも簡単です。
URI の末尾に「@Referer:〜〜」,「@User-Agent:〜〜」を付けるだけです。
例えば、
「http://taruo.net/e/index.cgi」に、
Referer に「http://www.fenrir.co.jp/」、
User-Agent に「Sleipnir/2.7.2」
を指定するには次のようにします。
http://taruo.net/e/index.cgi@Refere:http://www.fenrir.co.jp/@User-Agent:Sleipnir/2.7.2
これも、アドレスバーからだけでなく、お気に入りやページ内のリンクでも使用可能です。
勿論、『@post:』との同時使用も可能です。

以上で、説明は終了です。

というわけで、
お気に入りにページを追加したいけど、目当てのページは Referer が無いと弾かれるのにお困りの方。
お気に入りに 検索結果ページを登録したいけど、POST 送信じゃないと開けないとお嘆きの方。
そんな方は上記の方法を使ってみてはいかがでしょうか。


(2008/06/21 12:30 追記)

@Referer:〜〜」,「@User-Agent:〜〜」を指定する際、
「 」(半角スペース)が含まれていると正常に送信できずにエラーになってしまいます。
エラーの原因は、Sleipnir の URI アクションが外部ソフトを起動する際に引数を "" で囲まないからです。
そのため、「カスタムアクション」を処理する WSH が「 」(半角スペース)を 引数 の区切りと判断してしまい、
「カスタムアクション」が誤作動がおこしてしまいます。

このエラーを回避するには、
「 」(半角スペース)が含まれる Referer や User-Agent を指定する際に、
@Referer:"〜〜"」,「@User-Agent:"〜〜"
というように "" で囲ってください。
これで Referer や User-Agent を正常に送信できるはずです。

コメント

最高ですね

もう、なんというか・・・GoodJobです!

最高です

ありがとうございます!

> Kei_9 さん & dakkie さん

ありがとうございます。
本当は Cookie も送りたかったのですが、何故かできませんでした。
ちなみにこれらの機能は、第2回 FUM で本体実装要望の予定です。

立つ鳥跡を濁さずでお願いします・・

由々識さん、ちょっとここお借りしますね。

>dakkieさん
事後報告であっても良いと思うので、FUCで自分が立てられたトピックを纏められたほうがよろしくはないですか?
あなたの要望に対してレスをされた方や同じような事案に遭遇している人がその後のことを知りたがっているはずですよ。

コメントの投稿

管理者にだけ表示を許可する

画像の文字を半角数字で下記ボックスに記入ください。
文字が読みにくい場合はブラウザの更新をすると新しい文字列が表示されます。

トラックバック

http://yuyushiki.dtiblog.com/tb.php/115-42f9aa35

« 前のページ  | HOME |  次のページ »

Sleipnirスクリプトをお探しのかたはこちらへどうぞ。

Yuyu's Digital Lab.

プロフィール

由々識

作者:由々識

JavaScriptプログラマの由々識です。
主にSleipnirスクリプトを書いています。

RSS 1.0

カレンダー

11 | 2009-12 | 01
S M T W T F S
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

アーカイブ

カテゴリー

最新投稿

最新コメント

トラックバック

ツール

あわせて読みたい
この日記のはてなブックマーク数

DTIブログ
ブログでアフィリエイト


DTIブログポータルへ

このブログを通報