jQuery会正确地逃避我的引用吗?

时间:2013-07-02 02:54:44

标签: javascript jquery json post

我正在使用$ .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%确定我这样做是正确的,因为这一步没有错误是非常重要的。

3 个答案:

答案 0 :(得分:1)

我很确定val()不需要任何额外的转义,因为您实际上并没有编辑原始HTML。 val()在元素上设置DOM value

通常通过DOM / jQuery设置属性或属性应该没问题。这些将在呈现innerHtml时自动转义。但是如果你提交一个页面它甚至不需要渲染任何东西 - 它可以直接从DOM复制值来请求。

答案 1 :(得分:1)

由于您正在设置输入字段的值,因此它应该可以正常工作,无需转义/处理输入值中的任何字符。

答案 2 :(得分:0)

您可以使用JavaScript escape()函数确保正确转义字符串,以便在浏览器中显示。