Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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 html5历史API处理不存在的URL_Javascript_Jquery_Html_Browser History_Html5 History - Fatal编程技术网

Javascript html5历史API处理不存在的URL

Javascript html5历史API处理不存在的URL,javascript,jquery,html,browser-history,html5-history,Javascript,Jquery,Html,Browser History,Html5 History,我正在构建一个利用jquery的web应用程序。例如,当我按下一个按钮时,首页上某个特定页面中的所有html都会被清除,并且该div会使用jquery填充新内容。我希望这个“状态”由不同的url表示。我认为以下几点可以达到效果: history.pushState(null, null, "newdiv"); 我的问题有两个: 没有名为“newdiv”的资源。当用户在另一个选项卡上复制粘贴“./newdiv”链接时,应该能够获得与单击按钮(重新填充div)相同的结果。通常这会导致404文件找不

我正在构建一个利用jquery的web应用程序。例如,当我按下一个按钮时,首页上某个特定页面中的所有html都会被清除,并且该div会使用jquery填充新内容。我希望这个“状态”由不同的url表示。我认为以下几点可以达到效果:

history.pushState(null, null, "newdiv");
我的问题有两个:

  • 没有名为“newdiv”的资源。当用户在另一个选项卡上复制粘贴“./newdiv”链接时,应该能够获得与单击按钮(重新填充div)相同的结果。通常这会导致404文件找不到的错误。这应该包括调用所有jquery e.t.c。有没有关于如何实现这一点的示例

  • 填充新div后,用户应该能够使用浏览器上的“后退”按钮返回到以前的状态。问题是原始首页(原始div)本身是使用jquery创建的。我读到使用“history.popstate()”可以实现这一点。但是,由于我计划为许多这样的jquery调用保留单独的历史记录,所以我不能简单地使用history.popstate()在原始div上重做jquery需要做的任何事情

  • 例如:

    window.addEventListener('popstate', function(){
        //all the jquery needed to reproduce the original div
    }); 
    
    这是不可取的,因为在我的web应用程序中,从任何状态按下后退按钮(假设用户必须填写多阶段表单,他按下后退按钮以获取上一个表单)都会导致出现头版

    有没有办法做到这一点?在servlet中解析请求url并基于此重定向似乎是可能的,但听起来工作量太大了。我只是想在做那样的事之前检查一下