使用 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/中的标签吗?
问问题
300 次
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 回答