|
经过抓包,获取QQ邮箱登录时用到的一个js函数,如下:
function hexchar2bin(str)
{
var arr = [];
for (var i = 0; i < str.length; i = i + 2)
{
arr.push("\\x" + str.substr(i, 2));
}
arr = arr.join("");
eval("var temp = '" + arr + "'");
return temp;
}
注:调用此函数的测试输入值为:hexchar2bin("123123");,
测试得结果:vs2013调试过程中返回的值错误,IE开发工具调试出来的值正常
这个函数是模拟登录QQ邮箱一个核心方法。
在VS2013新建了一个web页面,然后把此函数添加到js脚本里面。
这时,我把断点设置在:return temp;这个地方,跟着,我就运行项目了,当项目运行到断点的时候,
我看了下"temp"这个变量的值:B—ôK•R5$[$—9z
这时,我换了一种方式,用IE浏览器打开自己那个web页面,并且打开IE自带的“开发人员工具”,
在工具上也设置了断点位置在return temp;这个地方,当浏览器运行到断点的时候,
这时"temp"这个变量的值是:B—ôK\u0013•R5$[$—9z
这就问题来了,同样的一个js函数,在VS里面调试出来的结果和在IE浏览器里面调试出来的结果为什么不一样,
这问题纠结了我一晚上,到现在还没睡,实在没办法只有请教各位大仙了。另外,各位大仙可以按照我以上说的测试下,
确实是存在同一JS函数执行后得出不同的结果。因为,我需要模拟登录邮箱,所以此函数肯定会放在我程序里运行,不可以放在浏览器里面运行! |
|