关于”仿百度竞价右下角浮动效果代码”获取参数乱码问题

anke_li 2010-06-10 09:24:54
问题起因:前几天公司让我写一个关于本公司的网站需求,我在浏览网页的时候,看到了以上这个公司的一个功能,就是在右下角出现了弹出留言框,可以很方便的留言,我感觉这个功能很不错,就自己扒出来.
我又在网上找,找到了一个用例.地址为: http://www.jb51.net/jiaoben/22478.html 以上的实例是我从这个网站下载的
但是我发现两个网站的entry.js中有一处不一样,就是出现错误的时候
var sfMessTimes;
function sfMessSubmitMonitor () {
try{
var hash = sf_mess_lib.getElement(SF_MESS_FRAME_ID).contentWindow.location.hash;
sfMessTimes ++;
if (sfMessTimes > 10) {
sf_mess_lib.getElement(SF_MESS_FRAME_ID).src = "about:blank";//提交留言的地址。
alert(sf_mess_msg.success);
sf_mess_lib.getElement(SF_MESS_SUBMIT_ID).disabled = false;
for (var i = 0, l = sf_mess_cols.length; i < l; i++) {
var inputCfg = sf_mess_cols[i];
var inputEl = document.getElementById(SF_MESS_PREFIX + inputCfg.idname);
inputEl.disabled = false;
inputEl.value = filtInnertip(inputCfg.innertip);
}
} else {
setTimeout(sfMessSubmitMonitor,100);
}
} catch (e) {
sf_mess_lib.getElement(SF_MESS_FRAME_ID).src = "about:blank";//提交留言的地址。
alert(sf_mess_msg.success);
sf_mess_lib.getElement(SF_MESS_SUBMIT_ID).disabled = false;
for (var i = 0, l = sf_mess_cols.length; i < l; i++) {
var inputCfg = sf_mess_cols[i];
var inputEl = document.getElementById(SF_MESS_PREFIX + inputCfg.idname);
inputEl.disabled = false;
inputEl.value = filtInnertip(inputCfg.innertip);
}
}
}
问题所在:这样用也可以,其他的都没问题,但是在获取参数数据的时候出现了中文的乱码问题,我尝试了各种解决传值乱码的办法都不行,我原以为是乱码转换的问题,但是到最后跟同事研究是entry.js 这个js文件出的问题,小弟js不是很好,有大侠做过这方面的请给予解释一下,完成后我会放到scdn上面,共大家使用,我用的是java开发的.
...全文
190 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
anke_li 2011-04-24
  • 打赏
  • 举报
回复
我的QQ:30171310 上线联系
[Quote=引用 8 楼 caishaobinyun 的回复:]
楼主,帮帮忙啊,能分享一下吗,邮箱47361673@qq.com
[/Quote]
caishaobinyun 2010-08-18
  • 打赏
  • 举报
回复
楼主,帮帮忙啊,能分享一下吗,邮箱47361673@qq.com
anke_li 2010-06-29
  • 打赏
  • 举报
回复
问题已经解决,感谢
Jesses41 2010-06-25
  • 打赏
  • 举报
回复
回帖看回复
karso 2010-06-10
  • 打赏
  • 举报
回复
你的悬浮框 在IE6下不兼容
浪尖赏花 2010-06-10
  • 打赏
  • 举报
回复
java的unescape解码
	public String unescape(String src) {
StringBuffer tmp = new StringBuffer();
tmp.ensureCapacity(src.length());
int lastPos = 0, pos = 0;
char ch;
while (lastPos < src.length()) {
pos = src.indexOf("%", lastPos);
if (pos == lastPos) {
if (src.charAt(pos + 1) == 'u') {
ch = (char) Integer.parseInt(src.substring(pos + 2, pos + 6), 16);
tmp.append(ch);
lastPos = pos + 6;
} else {
ch = (char) Integer.parseInt(src.substring(pos + 1, pos + 3), 16);
tmp.append(ch);
lastPos = pos + 3;
}
} else {
if (pos == -1) {
tmp.append(src.substring(lastPos));
lastPos = src.length();
} else {
tmp.append(src.substring(lastPos, pos));
lastPos = pos;
}
}
}
return tmp.toString();
}
浪尖赏花 2010-06-10
  • 打赏
  • 举报
回复
这个是JS的escape编码,LZ只需要解码即可以

JS解码:var str = unescape("%u4F60%u597D");

java解码:见我的博客
karso 2010-06-10
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20100609/13/122e6aff-da05-4916-8c29-e3a66ef41ed4.html?86834
anke_li 2010-06-10
  • 打赏
  • 举报
回复
<%
request.setCharacterEncoding("GBK");
System.out.print("这里是Test.jsp"+"\n");
//获取所有的请求参数的参数名
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()){
String paramName = (String)paramNames.nextElement();
//获取一个参数的多个参数值
String[] values = request.getParameterValues(paramName);
if(values!=null){
for(int i=0;i<values.length;i++){
String value = values[i];
System.out.println(paramName+":"+value);
}

}
}
%>
我在获取参数的展示出来的时候出现了乱码问题:
这里是Test.jsp
questionhide:%u4F60%u597D
mobilehide:2
email1hide:3
namehide:1
questionhide我输入了 你好 获取的内容

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧