谁能告诉我为什么alert会输出别的东西 javascript 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 {"k":["1","2","3"]}alert( decodeURIComponent(str) ) 你alert的字符串是经过url encode处理过后的。decode + eval可以显示原来的json对象。 您好,我在http://www.jb51.net/article/34280.htm里用的是decodeURI来传递参数,如果放在两个页面就不会alert任何东西,放在一个页面用decodeURI为什么就可以,我并没有在里边使用decodeURIComponent啊`` 而我在一个php页面嵌入一个js文件以后,使用decodeURI就是没法alert,但是使用decodeURIComponent就可以alert,请问是有什么原因 呢 PHP的:<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title><script language="javascript" src="map.js" ></script> </head><body onload="getInfo('<?php echo urlencode(json_encode($info))?>');"></body> </html>JS的function getInfo(pos){ var obj=eval('('+decodeURIComponent(pos)+')'); alert(obj.username);} 测试代码贴出来。明天帮你看看吧。媳妇喊睡觉了。差不多最简单的就是这样了$info这个函数可以换成个数组array('k=>array('1','2','3')') 测试代码贴出来。明天帮你看看吧。媳妇喊睡觉了。我换了个号,给你发一下代码 function getInfo(pos){ var obj=eval('('+decodeURI(pos)+')'); alert(obj.k[0]);}<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title><script language="javascript" src="map.js" ></script> </head><body onload="getInfo('<?php echo urlencode(json_encode(array('k'=>array('1','2','3'))));?>');"></body> </html> 测试代码贴出来。明天帮你看看吧。媳妇喊睡觉了。我换了个号,给你发一下代码 function getInfo(pos){ var obj=eval('('+decodeURI(pos)+')'); alert(obj.k[0]);}<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title><script language="javascript" src="map.js" ></script> </head><body onload="getInfo('<?php echo urlencode(json_encode(array('k'=>array('1','2','3'))));?>');"></body> </html>不好意思,刚想起来。php中的urlencode函数会对 -_. 之外的所有非字母数字字符进行url编码,也就是说“=”号也被编码了。而在js中decodeURI只会对保留字符、基本字符、字符之外的字符进行解码(=号在保留字符中,不会被解码)decodeURIComponent与decodeURI的区别在于前者会对保留字符也做解码。因此,对于PHP中使用urlencode编码的字符串,为了保险起见,你应该使用js中的decodeURIComponent解码。而在js中,encodeURI与decodeURI,encodeURIComponent与decodeURIComponent应该配对使用。 用php写了个程序,大家看下 现在遇到一个关于zend安装的问题,本人不知道从何下手 请教一个正则替换,谢谢 如何用PHP实现对某个数据表字段的增删改啊? 正则转换问题 如何只取字符串里面的数值类字符 急 想写一句SQL语句 请问各位,在php中如果得到图片按钮有没有被点击过! [求助] 上传文件无响应 为什么在class里面要var一些变量? 爬新浪网好友遇到的模拟登陆问题 请教一个php手工分页和点击新闻标题显示详细信息的问题,望高手解答
decode + eval可以显示原来的json对象。
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script language="javascript" src="map.js" >
</script>
</head>
<body onload="getInfo('<?php echo urlencode(json_encode($info))?>');">
</body>
</html>
JS的
function getInfo(pos){
var obj=eval('('+decodeURIComponent(pos)+')');
alert(obj.username);
}
测试代码贴出来。明天帮你看看吧。媳妇喊睡觉了。差不多最简单的就是这样了$info这个函数可以换成个数组array('k=>array('1','2','3')')
测试代码贴出来。明天帮你看看吧。媳妇喊睡觉了。我换了个号,给你发一下代码 function getInfo(pos){
var obj=eval('('+decodeURI(pos)+')');
alert(obj.k[0]);
}
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script language="javascript" src="map.js" >
</script>
</head>
<body onload="getInfo('<?php echo urlencode(json_encode(array('k'=>array('1','2','3'))));?>');">
</body>
</html>
测试代码贴出来。明天帮你看看吧。媳妇喊睡觉了。我换了个号,给你发一下代码 function getInfo(pos){
var obj=eval('('+decodeURI(pos)+')');
alert(obj.k[0]);
}
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<script language="javascript" src="map.js" >
</script>
</head>
<body onload="getInfo('<?php echo urlencode(json_encode(array('k'=>array('1','2','3'))));?>');">
</body>
</html>
不好意思,刚想起来。
php中的urlencode函数会对 -_. 之外的所有非字母数字字符进行url编码,也就是说“=”号也被编码了。
而在js中decodeURI只会对保留字符、基本字符、字符之外的字符进行解码(=号在保留字符中,不会被解码)
decodeURIComponent与decodeURI的区别在于前者会对保留字符也做解码。
因此,对于PHP中使用urlencode编码的字符串,为了保险起见,你应该使用js中的decodeURIComponent解码。
而在js中,encodeURI与decodeURI,encodeURIComponent与decodeURIComponent应该配对使用。