Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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应用程序中的URL重写_Javascript_Jquery_Url_Web - Fatal编程技术网

Javascript AJAX应用程序中的URL重写

Javascript AJAX应用程序中的URL重写,javascript,jquery,url,web,Javascript,Jquery,Url,Web,我正在做一个简单的在线申请。 我有一个带有几个按钮的导航栏和一个“div”,所有新内容都将动态加载到其中,即当我单击“About”时,它会将页面部分加载到“div”中,而不会使用.load()函数重新加载整个页面。问题是: 如果我需要提供指向我网站文档部分的链接,或者用户希望存储此类链接,那么在浏览我的网站时,url不会被重写。当用户存储默认链接时,它将始终将用户链接到默认的“主”部件 如何重写URL以及最正确的方法是什么?作为选项,您可以使用location.hash 例如,用户单击 您正在加

我正在做一个简单的在线申请。 我有一个带有几个按钮的导航栏和一个“div”,所有新内容都将动态加载到其中,即当我单击“About”时,它会将页面部分加载到“div”中,而不会使用.load()函数重新加载整个页面。问题是: 如果我需要提供指向我网站文档部分的链接,或者用户希望存储此类链接,那么在浏览我的网站时,url不会被重写。当用户存储默认链接时,它将始终将用户链接到默认的“主”部件


如何重写URL以及最正确的方法是什么?

作为选项,您可以使用
location.hash

例如,用户单击

您正在加载“关于”页面的内容。 此外,浏览器地址栏中的URL将更改为类似
http://mysite.com/hello.jsp#about

所以现在用户可以复制这个URL并访问它

然后在
$(document).ready()
中,您可以检查
位置.hash
,在其中找到
'#about'
锚定,然后加载适当的内容



另一种选择是使用JavaScript或您喜欢的任何其他JavaScript MVC框架,这将帮助您构建富客户端应用程序并为您处理这些事情。

根据我的说法,适当的方法是更新URL的哈希。例如example.com/#About等。人们可以将这些内容添加到书签中。在读取URL中的哈希标记并加载相应页面时,必须注意进行AJAX调用


我要做的是在事件中调用ajax,而不是单击。IE8对所有现代浏览器都支持此事件。如果您想支持IE7,请使用Ben Alman的

您可以在url中使用哈希来标识加载的节,并在获取页面时加载内容,即:。但我认为你遗漏了一个更大的问题,那就是,你的内容不会被索引。ajax非常好,但我认为您使用它有误。看看history.js或jQuery BBQ插件,它们可以更改url中的哈希值,并反向解析哈希值,以便加载适当的内容。它们是为ajax友好书签而设计的,只有最新的浏览器才支持。您可能想使用