Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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 SEO-后退和前进按钮_Javascript_Jquery_Hash_Seo - Fatal编程技术网

Javascript AJAX SEO-后退和前进按钮

Javascript AJAX SEO-后退和前进按钮,javascript,jquery,hash,seo,Javascript,Jquery,Hash,Seo,我正在使用Ben Almans插件进行哈希更改跟踪: 此外,我还修改了我的web配置,这样当您输入www.mysite.com/test1时,PHP将获取带有test1值的字符串,并将其转发给JavaScript。JavaScript通过AJAX将其发送到服务器端脚本,并返回test1页面 在地址栏中写入www.mysite.com/test1之后,用户将获得test1页面。 一切都好 现在。如果您进入www.mysite.com,您只会看到索引页面,并且有一个指向test1页面的链接。 如果您

我正在使用Ben Almans插件进行哈希更改跟踪:

此外,我还修改了我的web配置,这样当您输入www.mysite.com/test1时,PHP将获取带有test1值的字符串,并将其转发给JavaScript。JavaScript通过AJAX将其发送到服务器端脚本,并返回test1页面

在地址栏中写入www.mysite.com/test1之后,用户将获得test1页面。 一切都好

现在。如果您进入www.mysite.com,您只会看到索引页面,并且有一个指向test1页面的链接。 如果您按下它,它将生成地址www.mysite.com/test1,并且由于该散列更改插件可以在您按下后退按钮时使用AJAX将您带回来

我想要的是有这样的散列更改插件、方法或系统,它们不需要这些符号。因为我希望用户看到相同的干净地址,如www.mysite.com/test1

那可能吗?那不可能。是位置的哈希部分的前缀。散列通常不会发送到服务器,因此,更改散列不会导致页面请求

当您省略字符的名称时,页面请求将启动

如果你想搜索引擎优化网址的,我建议使用这个

<script>
$(document).ready(function(){
    var base_url = location.protocol + "//" + location.host + "/";
    $("a[href^='+base_url+']").bind("click", function(ev){
        location.hash = $(this).href.substr(base_url.length)
        ev.preventDefault();
    })
});
</script>
<a href="http://www.mysite.com/test1">Link</a>

这将在文档中的每个元素处绑定一个onclick,带有一个以基本url开头的href属性。

对不起,这种方法不适合我。当用户按下链接时,我获取链接的值,并通过ajax将其传递给php,然后返回一些页面,使用jquery绘制它。我不去那个页面,我的答案适合你的方法。您将实际停留在同一页面上,使用hashChange事件捕获所有链接,而禁用JS的用户仍然可以使用这些链接进行浏览。更改哈希时,页面不会卸载。捕获后退和前进按钮如何?您可以使用此方法修改浏览器历史记录。但是,当用户浏览历史记录时,页面将完全重新加载。使用散列时,页面不会完全重新加载。