Safari中url中的特殊字符

时间:2013-04-01 22:22:09

标签: safari uri special-characters

我们在网络应用程序中使用了一些特殊字符:example.com/foo#вап

我们使用decodeURI(window.location.hash)解析哈希(有时哈希包含未编码的特殊字符)并设置新值window.location.hash = "вап"

Chrome,Firefox,Opera甚至IE都能正常运行,但在Safari中我们会20?而不是вап

如果像Safari window.location.hash = encodeURI("вап");这样在Safari中设置哈希值有效,但当然它在Chrome,FF和其他设备中无效。

2 个答案:

答案 0 :(得分:5)

最后我找到了解决方案。 如果通过window.location.href设置哈希,一切正常。

以下是代码:

var newHash = ...
var sharpIdx = window.location.href.indexOf("#");
if (sharpIdx === -1) {
  window.location.href = window.location.href + "#" + newHash;
} else {
  window.location.href = window.location.href.substr(0, sharpIdx) + "#" + newHash;
}

答案 1 :(得分:0)

我遇到了同样的问题,找到了另一种解决方法

csv