ma1*_*w28 4 javascript json iterator escaping urlencode
我正在为Facebook Feed对话框格式化URL .但是有很多参数.我想为这些对话框提供一个函数,例如:
function generateDialogUrl(dialog, params) {
base = "http://www.facebook.com/dialog/" + dialog + "?";
tail = [];
for (var p in params) {
if (params.hasOwnProperty(p)) {
tail.push(p + "=" + escape(params[p]));
}
}
return base + tail.join("&")
}
Run Code Online (Sandbox Code Playgroud)
哇哇...我想我刚回答了自己的问题.是对的吗?是否escape()使用正确的功能?
我陷入了恋人的源代码.
更新:因为,我们正在使用jQuery,我重写了使用的方法jQuery.each.我也按照@galambalazs和@TJ Crowder的建议更换escape()了encodeURIComponent().多谢你们!
var generateDialogUrl = function (dialog, params) {
base = "http://www.facebook.com/dialog/" + dialog + "?";
tail = [];
$.each(params, function(key, value) {
tail.push(key + "=" + encodeURIComponent(value));
})
return base + tail.join("&");
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理!
更好的是,encodeURIComponent改为使用.看到这篇文章比较两者:
的逃逸()方法不编码,其与在各自的领域空间解释为空间上的服务器侧以及生成由表格+字符.由于这个缺点以及此函数无法正确处理非ASCII字符的事实,您应该尽可能避免使用escape().的最佳替代品通常是 encodeURIComponent方法() .
escape()不会编码:@*/+