我正在使用$ .cookie()以jSON格式从cookie中提取所有值:
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的表单中,我想确保一切正常POST
,即使有各种各样的疯狂字符可能会在那里与HTML通常发生冲突(完全限定的网址,&
,"
,'
,甚至是>
或<
)
我还需要确定它适用于IE6,IE7等。
var input = $('<input type="hidden" name="CustomField1">');
input.appendTo($('form[data-params=track]')).val(props);
它会*显示*正在工作,但我想100%确定我这样做是正确的,因为这一步没有错误是非常重要的。
答案 0 :(得分:1)
我很确定val()
不需要任何额外的转义,因为您实际上并没有编辑原始HTML。 val()
在元素上设置DOM value
。
通常通过DOM / jQuery设置属性或属性应该没问题。这些将在呈现innerHtml
时自动转义。但是如果你提交一个页面它甚至不需要渲染任何东西 - 它可以直接从DOM复制值来请求。
答案 1 :(得分:1)
由于您正在设置输入字段的值,因此它应该可以正常工作,无需转义/处理输入值中的任何字符。
答案 2 :(得分:0)
您可以使用JavaScript escape()
函数确保正确转义字符串,以便在浏览器中显示。