不仅仅是MT,IDN仍然在很多方面没有很好的被融合,GM的api key就是一个例子,这一问题已经提出并被开发人员认知有一年了,但现在还是没有看到完美的解决。
GM为第三方使用API提供了一个key,这个key和域名绑定以防止滥用。如果申请key的时候输入的是IDN域名,Google不会用punycode编码,而是进行unicode转换。转换后的IDN是一串百分号字符,被浏览器识别后会自动转回punycode或unicode。
为了至少让一部分浏览器工作,我们直接申请punycode形式的域名,Google则正确的生成一个可以在IE6或FF中有效的key。同时,IE7被改写而原生支持unicode,此时的key因为不匹配而无法正常显示。
兼容IE7的一个dirty hack的方法是使用iframe。在IDN所属页面中嵌套一个非unicode域名下的页面,并使用匹配这一域名的key。
没有评论:
发表评论