Javascript实现不同编码之间的URL提交
来源:程序员人生 发布时间:2014-03-18 10:27:34 阅读次数:4189次
不同的网站之间提交参数的时候。比如A网站是UTF-8编码,向liehuo.net (GBK) 提交一个链接
http://s.liehuo.net/?q=杯具&sp=on 这样会存在转码的问题。 提供一个函数。将 http://s.liehuo.net/?q=1&a=2&b=3&c=4 转换成FORM,再通过更改FORM的accept-charset 来达到自动转码的目的。
代码如下:
//提供一个URL,JS分析创建表单提交
function submitAsForm(requestUri, charset) {
var s = requestUri.split('?'),d = document,div = d.createElement('DIV');
div.innerHTML =
'<form method="GET" action="'+ s[0] +'">' +
s[1].replace(/((w+)=(.*?))(&|$)/gi, function(s,m,n,v){
return '<input type="hidden" name = "'+ n +'" value="'+ /*encodeURIComponent*/(v) +'" />'
}) +
'</form>'
var form = div.firstChild;
form.setAttribute('accept-charset', charset || 'UTF-8');
if (document.all) document.charset = charset;
form.submit();
}
//submitAsForm('http://s.liehuo.net/?a=1&b=2&c=3&d=4', 'GB2312')