eVar7

SiteCatalyst User Group in Japan

URLに含まれるパラメータ(xxx.html?name1=value2&name2=value2)を取得できるプラグイン。

意外な活用方法

その1:複数の値を同時に取得

例:s.campaign=s.getQueryParam('cid,sid',':');

パラメータ名はカンマで区切って複数指定できます。その場合、取得する値のセパレータ文字列も指定できます。

xxx.html?cid=a&sid=b というURLの場合、「a」と「b」が「:」で区切られて結合され、「a:b」という値がs.campaignにセットされます。

その2:ページURL以外から取得

例:s.eVar1=s.getQueryParam('kw','',document.referrer);

3つ目の引数で、パラメータ取得元のURLを明示的に指定できます。この例では、リファラのURLに含まれるパラメータをeVar1にセットします。

表示: 224

タグ:Plugin, 実装

7:47pm の 11 月 3, 2010 にある 手崎佳充 のコメント
getQueryParamは、最もよく使われているプラグインのひとつだと思います。
ただ、最近のs_code のバージョン H21以降でしたっけ?Android対応のためだとおもいますが、内部で使用されるパラメタの処理を行うファンクションで、encodeURIComponentが使用されるようになりました。
そして、UTF-8以外の文字列がURLエンコードされたパラメタを処理しようとすると、エラーが起きるようになりました。
その2の リファラ取得の例で言うと、例えば次のような例です。
ヤフオクなどのeuc-jpのページの検索ボックスからウェブ検索をすると、サーチ結果のURLにei=EUC-JPというパラメタが付きます。そのサーチ結果からの来訪は、リファラにeuc-jpのURLエンコードを含んだ p というキーワードパラメタを持っています。この p を getQueryparam で処理しようとするとエラーがおきます。
getQueryparamが plugin セクションに記述してある場合、s.t の処理の中で必ず呼ばれることになるので、素のまま書いてエラーが起きると、ビーコンそのものが飛ばなくなります。
やりたい場合は、try catch を使って、エラーが起きてもビーコンがとぶように書いておきましょう。
また、検索ワードなど多バイト文字列をパラメタに利用されている際には注意しましょう、ということで。

コメント

コメントを追加するには、eVar7 のメンバーである必要があります。

eVar7 に参加する

© 2012   Created by 清水 誠.

バッジ  |  問題の報告  |  サービス規約