视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
iframe下页面传参数为乱码问题探讨
2020-11-27 14:45:11 责编:小采
文档
 遇到了变态很不常见的参数乱码的问题
首先看下页面

如图,月度指标下面也有同样的三个radio。
三个radio 下面是一个iframe,实现效果是,点击不同的radio显示不同的页面,
点击的时候传递带参数的网页地址。

(1)问题出来了,当“日度指标”和“月度指标”切换的时候,由于我传递的参数为汉字,在后台获取为乱码,
于是进行给参数进行encode编码,后台UrlDecode解码,郁闷的发现还是乱码。
然后仔细对照页面的编码发现,要在iframe打开的页面没有编码。
于是在页面加上下面一句话

代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

现在似乎好了,切换“日度指标”和“月度指标”网页都能正常显示,参数也传递过去了。

(2)可是变态的问题出现了,当我切换radio 的时候,报错了,参数又变成了乱码。
这次实在不知道哪里错了,“日度指标”、“月度指标”和radio点击切换页面的JS方法用的同一个。
郁闷中,自己乱点,发现如下:
当点击“煤层气”时页面正常,然后在点击“采油”参数错误了,我在采油已经为选中的情况下再点“采油”,页面竟然正常显示了
想象不应该这样啊
然后比对“煤层气”和“采油”,“采油”模块我已经挂上正式页面,“煤层气”模块由于还没有做只是随意挂上的百度页面。由于在问题(1)编码的问题,我首先想到的是编码问题,查看百度编码如下,

代码如下:
<metahttp-equiv="content-type"content="text/html;charset=utf-8">

编码格式不一样。所以我把“煤层气”也挂上了“采油”的页面,去掉百度。
额,页面正常运行了,不报参数乱码了。

分析下原因:貌似传递参数时,获取的是当前iframe展示页面编码,而和要打开的页面编码没有关系。
但是,真的不应该这样啊,那是一个iframe,我在iframe的父页面给iframe赋值url、传递参数, 管 iframe现在的页面鸟事啊?

下载本文
显示全文
专题