1

URL で 2 つの URL パラメーターを渡す必要があります。URL は電子メールに記載されており、ユーザーは自分のサイトに誘導するリンクをクリックします。最初のパラメーターはページのスクリプトをトリガーし、2 番目のパラメーターは、CMS がパラメーターからレンダリングするモジュール用です。

最初のパラメーターは: message=1(このパラメーターは JavaScript をトリガーします)

2 番目のパラメーターは次のとおりです。name={tag_recipientfirstname}(私の CMS はモジュールをレンダリングします)

最初に呼び出されるスクリプトは次のようになります。

    <script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function() {
var url = window.location.href;
url = url.toLowerCase();
if (url.indexOf('message=1') != -1) {
        $j("a.message").colorbox({
            open:true
});
   }
$j("a.message").colorbox(); //not related to URL parameter
}); 
</script>

2 番目のパラメーターは、ページで次のように使用されます。

<div>
<p>{ module_url,name} (again CMS will render this module)</p>
</div>

編集

私はいくつかのことを忘れたことに気づきました:

最初: 両方のパラメーターを渡して、両方が上記のように機能するようにするにはどうすればよいですか?

そして、私が使用している CMS は Business Catalyst です。

4

2 に答える 2

3
//split the `location.search` string at the ampersands
var search_arr = window.location.search.replace('?', '').split('&'),
    len        = search_arr.length,
    get_vars   = {},
    tmp        = [];

//iterate through the key/value pairs and add them to the `get_vars` object
for (var i = 0; i < len; i++) {
    tmp = search_arr[i].split('=');
    get_vars[tmp[0]] = tmp[1];
}

//you can now access your GET variables through the `get_vars` object like: `get_vars.name`

//you can check for the existence of a certain GET variable like this
if (typeof(get_vars['message-1']) != 'undefined') {
    $j("a.message").colorbox({
        open:true
    });
}

ここにデモがあります: http://jsfiddle.net/aBH8K/1/ (http://jsfiddle.net/aBH8K/1/show/?message-1=3 で get var を参照)

関連ドキュメント:

于 2011-12-09T03:20:16.290 に答える
1

あなたの質問は一般的な開発に関するものではなく、非常に具体的な商用製品に関するものです。あなたがどのプランを購読したかはわかりませんが(無料または有料?)、いずれにせよ、彼らのサポートを利用するのが最善でしょう(私の結論も参照してください)

それにもかかわらず、私はあなたを正しい軌道に乗せようとします。

あなたの質問

初め、

メール内のURL

電子メールでは、@ Jasper が説明しているように、必要な 2 つのパラメーターを使用してリンクを作成する必要があります。これは次のような意味です:

http://yourwebsite.com/destination/path/?message=1&name={tag_recipientfirstname}

疑問符の後のすべてがGET クエリ文字列です。パラメータは「&」記号で区切られています。

BC メールで URL をどのように適切に構築するかははっきりとはわかりませんが、必要に応じて追加のパラメーターを指定できるようにどこかで自動化する必要があると思います。

JavaScript

取得したものは引き続き機能します。Jasper のソリューションや、JavaScript でクエリ文字列の値を取得するにはどうすればよいですか?などの他のソリューションを使用できます。

あなたがそれをより良く、より堅牢にしたいのでなければ、何もする必要はありません。

Business Catalyst (ページ)

通常、CMS には get パラメータを取得する方法があります。多くの場合、次のようなもの

{ GET.param_name }

一歩後退

私は BC の専門家ではありませんが、おそらく既に組み込まれているものに対して複雑な道を歩んでいるように感じます。

繰り返しになりますが、彼らのサポート セクションにアクセスして(ややこしいと言わざるを得ませんが!)、目的を達成するための最善の方法を理解しようとすることをお勧めします。貧しい猫の皮を剥ぐ方法は常にたくさんあります。計画でサポートを受けている場合は、必ずそのようにして、良いと思う技術的解決策を達成する方法ではなく、目的を説明してください。

于 2011-12-09T11:59:56.970 に答える