Safari中的bug window.location.href + hash?

Fra*_*sco 3 javascript safari hash

我的JavaScript文件中有一个脚本,我需要打开一个已设置哈希的新文件,例如:

function search(queryString){
    window.location.href = "dosome.php#" + queryString
}
Run Code Online (Sandbox Code Playgroud)

因为dosome.php是我拥有搜索所有脚本的页面...

我知道这听起来像是黑客,但我不能花更多的时间重建一切.我只想暂时解决它.

它适用于Firefox和Chrome,但出于某种原因,它在Safari中不起作用 - 它不会使用散列发送URL.Safari发送:

domain.com/dosome.php
Run Code Online (Sandbox Code Playgroud)

代替

domain.com/dosome.php#queryvalues
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

Mar*_*aio 5

如果你的服务器上dosome.php有一些重定向,那么哈希不会被保留,至少在Safari 4和IE8上是这样.Chrome和Firefox效果很好.

为了测试这一点,请尝试http://yourdomain.com/...dosome.php#...在Safari的地址栏中输入URL ,看看Safari是否会丢失#.(用w/o测试www,即使是简单的www重定向也会丢失#.)

如果是这种情况,那么您无法在服务器端执行任何操作,因为#...它未发送到服务器; 它是客户谁应该在导航过程中不会失去它.