1

$.cookie() を使用して、Cookie からすべての値を JSON 形式で取得しています。

var props = $.cookie('params');

props戻り値:

{"distinct_id": "13f97d6600b42e-000e6293c-6b1b2e75-232800-13f97d6600cc82","utm_source": "the_source","utm_term": "myterms","utm_campaign": "campaign","utm_medium": "medium","utm_content": "content"}

これをjQueryを使用してフォームに動的に挿入しています。通常はPOSTHTMLと競合するあらゆる種類のクレイジーな文字がそこにある可能性がありますが(完全修飾URL &、、、、または) _"'><

また、IE6、IE7などで動作することを確認する必要があります.

var input = $('<input type="hidden" name="CustomField1">');
input.appendTo($('form[data-params=track]')).val(props);

動作しているように見えますが、この手順にバグがないことが非常に重要であるため、これを正しく行っていることを 100% 確認したいと思います。

4

3 に答える 3

1

val()生の HTML を実際に編集しているわけではないので、追加のエスケープは必要ないと確信しています。val()要素にDOMvalueを設定します。

通常、DOM/jQuery を使用して属性またはプロパティを設定することは問題ありません。それらはレンダリング時に自動エスケープされますinnerHtml。ただし、ページを送信する場合、何もレンダリングする必要はありません。値を DOM からリクエストに直接コピーするだけです。

于 2013-07-02T02:59:52.233 に答える
1

入力フィールドの値を設定しているので、正常に機能するはずです。入力値の文字をエスケープ/処理する必要はありません。

于 2013-07-02T03:00:17.290 に答える
0

JavaScriptescape()関数を使用して、ブラウザーでの表示用に文字列が適切にエスケープされるようにすることができます。

于 2013-07-02T02:58:46.950 に答える