需要帮助jQuery语法来更改URL

时间:2011-08-01 04:30:52

标签: jquery facebook lint

使用jQuery,有没有办法让每个http://www.mywebsite.com/page/成为访客的http://www.mywebsite.com/#page,并确保Facebook URL Linter(http://developers.facebook.com/tools/lint)仍然可以阅读http://www.mywebsite.com/page/中的标签吗?

2 个答案:

答案 0 :(得分:0)

我不确定我完全理解你的问题。客户端库无法更改URL的路径部分,而不会导致浏览器从服务器获取不同的页面。

因此,如果用户转到http://www.mywebsite.com/page/,那么您可以使用客户端javascript将用户重定向到http://www.mywebsite.com/#page/,但这会导致浏览器加载页面http://www.mywebsite.com/然后尝试在该页面中找到#page片段。如果您希望浏览器重新加载http://www.mywebsite.com/#page/,那确实会发生什么。

FB不会在你的页面上运行javascript,所以如果FB转到http://www.mywebsite.com/page/,那就是它会看到的内容(它不会像常规浏览器那样被重定向)。

如果您想使用javascript进行强制重定向,可以将此代码放入页面中:

var path = window.location.pathname;
if (path.search(/^\/page\/?$/) >= 0) {
    window.location.replace("http://www.mywebsite.com/#page/");
}

此代码测试以查看网页网址上的路径名是/page还是/page/,如果是,则执行重定向。

答案 1 :(得分:0)

<script>
$(window).load(function(){
    var pieces = location.href.split('/');
    if (pieces[3].indexOf('#!') !== 0) {
        if (location.href.indexOf('#!') != -1) {
            pieces = location.href.replace('#!','').split('/');
        }
        pieces[3] = '#!/'+pieces[3];
        location.href = pieces.join('/');
    }
});
</script>