对于国际化域名,Chrome和Firefox对于同一域返回不同的结果。

火狐浏览器

> document.domain
"веб-коннект.рф"




> document.domain
"xn----9sbcmc3abwai2c.xn--p1ai"


window.location.hostname的行为相同

Chrome以punycode返回域名。
是否可以通过Firefox中的punycode获取域名,或者在Chrome中获取可读的域名?

最佳答案

您可以使用punycode.js之类的库,并检查代码是否在punycode中,对其进行解码并检查:



if (document.domain.indexOf("xn----") < 0)
  document.domain = punycode.encode(document.domain);

<script src="https://rawgit.com/bestiejs/punycode.js/master/punycode.min.js"></script>

07-26 00:16