Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 完整的Ajax站点,从“重定向”;“正常”;自动指向Ajax(片段)URL的URL?_Javascript_Ajax - Fatal编程技术网

Javascript 完整的Ajax站点,从“重定向”;“正常”;自动指向Ajax(片段)URL的URL?

Javascript 完整的Ajax站点,从“重定向”;“正常”;自动指向Ajax(片段)URL的URL?,javascript,ajax,Javascript,Ajax,好吧,现在流行的是这样一个网站: mysite.com/ mysite.com/about mysite.com/contact 但是如果用户启用了Javascript,那么让他们使用Ajax浏览这些页面: mysite.com/#/ mysite.com/#/关于 mysite.com/#/联系 那很好。我觉得一切都很顺利 我的问题是,如果用户到达“mysite.com/about”,如果他们有Javascript,我想立即自动将他们重定向到“mysite.com/#/about” 我

好吧,现在流行的是这样一个网站:

  • mysite.com/
  • mysite.com/about
  • mysite.com/contact
但是如果用户启用了Javascript,那么让他们使用Ajax浏览这些页面:

  • mysite.com/#/
  • mysite.com/#/关于
  • mysite.com/#/联系
那很好。我觉得一切都很顺利

我的问题是,如果用户到达“mysite.com/about”,如果他们有Javascript,我想立即自动将他们重定向到“mysite.com/#/about”

我让它工作,所以如果他们到达“mysite.com/about”,该页面将自行加载(无重定向),然后通过ajax加载之后所有的点击,但预片段URL不会改变。e、 g.如果他们到达“mysite.com/about”,然后单击“contact”,新的URL将是“mysite.com/about#/contact”。不过我真的不喜欢那样,太难看了

我能想到的自动将到达“mysite.com/about”的用户重定向到“mysite.com/#/about”的唯一方法是在页眉中添加一些javascript,只有在页面未通过ajax加载时才会运行这些javascript。该代码如下所示($=jQuery):

这在技术上是可行的,但会导致一些非常奇怪的行为。例如,通常当您“查看源代码”一个包含一些ajax内容的页面时,该ajax内容将不在源代码中,因为您正在查看原始页面的源代码。嗯,当我在这样重定向后查看源代码时,我看到的代码只是通过Ajax加载的代码——我以前从未见过这样的代码。这在Firefox3.6和Chrome6.0中都会发生。我还没有用其他浏览器验证过,但两个使用完全不同引擎的浏览器表现出相同的行为表明我做了坏事(例如,不仅仅是FF或Chrome的bug)

因此,不知何故,浏览器认为我所在的页面“就是”Ajax页面。我可以继续浏览,它工作正常,但如果我关闭Firefox并重新打开它(它重新打开了我打开的页面),它只会重新加载页面的Ajax片段,而不是整个包装器,直到我手动刷新。(不过Chrome不这么做,只有Firefox)。我从没见过这样的事

我尝试过使用setTimeout,这样在页面完全加载之前它不会执行重定向,但同样的情况也会发生。基本上,据我所知,只有当片段作为用户操作(单击)的结果放在那里时,这才有效,而不是自动地

所以我的问题是——自动将支持Javascript的浏览器从“普通”URL重定向到Ajax URL的最佳方法是什么?有人有这方面的经验吗?我知道有这样的网站-例如,(音乐网站)。那里没有什么奇怪的事,但我不知道他们是怎么做的


谢谢你的建议。

这种行为就像新的推特。如果键入URL:

http://twitter.com/dinizz
您将被重定向到:

http://twitter.com/#!/dinizz
我意识到这不是用javascript而是在服务器端完成的。我正在寻找一个使用RubyonRails实现这一点的解决方案。
尽管我建议你看看这篇文章:

这种行为就像新的推特。如果键入URL:

http://twitter.com/dinizz
您将被重定向到:

http://twitter.com/#!/dinizz
我意识到这不是用javascript而是在服务器端完成的。我正在寻找一个使用RubyonRails实现这一点的解决方案。 尽管我建议您看看这篇文章: