Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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 使用pushState创建;链接“;在AJAX网站上生成404_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript 使用pushState创建;链接“;在AJAX网站上生成404

Javascript 使用pushState创建;链接“;在AJAX网站上生成404,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,目前,我的网站只设置了一个html文件,该文件使用点击javascript函数在用户导航时以不同方式显示网站的各个部分。主页包含一个音频播放器,我希望在用户导航时继续播放,这就是我选择AJAX路线的原因 我在整个站点上实现了pushState,为用户导航到的每个部分生成URL。这些链接不起作用 关于这一点,我有几个问题:我应该使用pushState来生成这些URL,还是以错误的方式生成链接?有没有一种方法可以让用户在站点中重新加载一个深度嵌入的页面,然后用javascript服务器端构建页面 编

目前,我的网站只设置了一个html文件,该文件使用点击javascript函数在用户导航时以不同方式显示网站的各个部分。主页包含一个音频播放器,我希望在用户导航时继续播放,这就是我选择AJAX路线的原因

我在整个站点上实现了pushState,为用户导航到的每个部分生成URL。这些链接不起作用

关于这一点,我有几个问题:我应该使用pushState来生成这些URL,还是以错误的方式生成链接?有没有一种方法可以让用户在站点中重新加载一个深度嵌入的页面,然后用javascript服务器端构建页面

编辑:我觉得如果我可以将所有这些链接路由到一个javascript文件,然后构建相应的页面,也许这样可以工作?不确定这是不是解决问题的方法

$('#菜单a')。单击(函数(){
var page=$(this.attr('href');
history.pushState({},,,第页);
$('#news').load('content/'+page+'.php');
返回false;

});如果链接实际不起作用,则不应使用Pushstate。 您可以使用哈希来轻松实现这一点。 您可以在hashchange上调用事件
onhashchange

散列存储在window.location.hash属性中。也不需要修改浏览器历史记录


请参阅和

是否无代码?来吧我编辑并添加了一个jQuery函数,该函数正在加载页面的另一种状态。感谢您提供的信息!现在查看onhashchange。如果我将example.com/#foobar标记为书签,然后打开此链接,浏览器如何知道如何处理该哈希?或者,如何让我的javascript从标记的链接捕获此哈希并对其进行处理?实际上,我想我找到了答案。我在$(document).ready(function())中包含了一个“if(window.location.hash)”函数。这将检查单击的URL是否有哈希,然后执行一个操作以正确呈现页面。再次感谢您的帮助。