我曾经梦想过chrome(开发者频道)实现了一种通过javascript(路径,而不是域)更新地址栏的方法,而无需重新加载页面,或者他们确实已经这样做了.
但是,我找不到我认为我读过的文章.
我是疯了还是有办法做到这一点(在Chrome中)?
ps我不是在谈论window.location.hash,et al.如果上述情况存在,那么这个问题的答案将是不真实的.
我正在使用Ajax和hash进行导航.
有没有办法检查是否window.location.hash改变了这样?
http://example.com/blah #123到http://example.com/blah #456
如果我在文档加载时检查它,它可以工作.
但是如果我有基于#hash的导航,那么当我按下浏览器上的后退按钮时它就不起作用了(所以我从#456跳到了#123).
它显示在地址框内,但我无法用JavaScript捕获它.
javascript ajax javascript-events fragment-identifier hashchange
我想要的是拥有更改页面一部分的链接,以及它的动态URL,我可以在其中指定变量等 #calendar=10_2010tabview=tab2
Check this for an exact example: 点击这里进行精确的演示
所以这是我需要的链接格式:
#calendar=10_2010&tabview=tab2
我必须像链接变量calendar和tabview这样我就可以改变一个页面上的多个万物而不realoading.
或者像http://www.wbhomes.com.au这样的其他格式,这正是我想要的,但是第一种格式也很好,但这更美观.
http://wbhomes.com.au/#/propertiesforsale/houseandland/quinnsbeach-waterland1要求
需要从例如邮件的任何地方访问,或者如果我只是在URL栏中写入.
链接应该在历史记录中,因此如果我按下后退或前进按钮,则需要访问该页面.
页面刷新也需要工作.
一些资源:
例子:
www.facebook.com - 您的个人资料页面上的侧边栏链接
www.wbhomes.com.au/ - 100%接近我想要的
一些教程:
请帮我!我从来没有找到任何解决方案来做到这一点,但我不想使用jquery或任何API,或任何库,我想有一个工作Javascript/AJAX和PHP脚本.
Gmail似乎有一些聪明的方法来处理丰富的JS应用程序中的后退/前进按钮.
在我的组织中,我们试用了jQuery历史插件.该插件基本上每100毫秒运行一个函数,它解析URL并测试它是否已更改.HTTP锚点跟踪历史记录,如果锚点已更改,则插件调用用户指定的回调,传入新锚点,以便页面可以执行自定义行为以加载新内容.
我的组织确定jQuery历史插件不是生产质量.我并不怪他们说实话,因为你真的不想强迫你的用户的浏览器每100毫秒运行一次功能.此外,它使JS代码几乎不可能调试,因为在Firebug或类似的JS调试器中单击"Break On Next"将始终捕获jQuery历史事件,并且不会查看其他事件.
所以我们在这一点上放弃了在浏览器中实现后退/前进功能.但是,我最近注意到Gmail很好地实现了这一点.它还使用了HTTP锚点值,但我按下了"Break On Next",而且每100毫秒没有运行任何类型的功能.Gmail如何设法实现此后退/前进行为?
我有一个页面,它使用jQuery <input>根据用户从<select>框中选择的内容动态创建大量DOM元素.
假设用户从选择框中选择4,我的脚本动态显示4个输入框.
问题是当用户刷新或返回此页面时(使用浏览器后退按钮).动态创建的元素不会重新填充到它们的最后值,而所有其他"静态"元素都是.
我想我可以创建一个隐藏的输入,通过javascript与动态框的内容序列化,然后在$ document.ready上读取它,然后重新填充我的框.
有没有更好的办法?
我有一个在AJAX上工作很重的应用程序.但是我想要有导航功能.为了欺骗网址,我正在更改location.hash,以生成网址.但是,如果我使用back/fwd,只有url更改,但页面不会重新加载.如何重写hstory.back以重新加载页面.