我正在创建一个 Javascript 小部件,它是一个将查询字符串重定向到弹出窗口中的 php 页面的按钮。将集成小部件的页面首先使用以下方法将信息发送到 Javascript 小部件:
<script src="http://api.mydomain.com/widget/widget.js?api_key=123&firstname=Veronica&lastname=Gällman" type="text/javascript"></script>
小部件读取提交的字符串,然后创建弹出窗口/iframe 并重定向到http://api.mydomain.com/widget/index.php?firstname=Veronica&lastname =Gällman
当包含 JS 小部件的页面没有charset=utf-8
. 特殊字符将变成问号或方框。
我的程序员希望我这样做:
<script type="text/javascript">
var search = 'api_key='+encodeURIComponent('1234')+
'&firstname='+encodeURIComponent('Veronica')+
'&lastname='+encodeURIComponent('Gällman')+
document.write( search );
</script>
但我发现这种方法对于想要使用小部件的人来说是有问题的,而且一点也不优雅。
所以最后,我的问题是:有没有更好的方法来解决这个问题?
该脚本应支持具有charset=utf-8
和charset=iso-8859-1
在其上的页面。
我给他的建议是:
强制积分器发送
&charset=iso-8859-1
查询字符串,如果不是utf-8,然后在index.php中将ISO转换为UTF-8使用库来检测字符编码。如果检测为 ISO,则在 index.php 中将其转换为 UTF-8
这些听起来合理吗?2号可以吗?或者有更好的解决方案吗?
我是否被迫告诉我的小部件用户urlencode
在他们的页面上?