0

使用 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/中的标签吗?

4

2 回答 2

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/");
}

此代码测试页面 URL 上的路径名是否为/page/page/如果是,则进行重定向。

于 2011-08-01T05:01:53.443 回答
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>
于 2011-08-07T09:43:18.703 回答