Gre*_*bin 4 safari uri special-characters
我们在Web应用程序中使用了一些特殊字符,如下所示:example.com/foo#???
.
我们解析哈希使用decodeURI(window.location.hash)
(有时哈希包含未编码的特殊字符)并设置新值window.location.hash = "???"
.
一切都在Chrome,Firefox,Opera和IE浏览器甚至工作正常,但在Safari中,我们得到20?
代替???
.
如果在Safari中设置hash就像window.location.hash = encodeURI("???");
它有效,但当然它在Chrome,FF和其他设备中不起作用.
最后我找到了解决方案.如果设置哈希通过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;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1785 次 |
最近记录: |