【问题标题】:Need help with jQuery syntax to change URL需要 jQuery 语法帮助来更改 URL
【发布时间】:2011-08-01 04:30:52
【问题描述】:

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

【问题讨论】:

    标签: jquery facebook lint


    【解决方案1】:

    我不确定我是否完全理解您的问题。客户端库无法在不导致浏览器从服务器获取不同页面的情况下更改 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/,如果是,则进行重定向。

    【讨论】:

    • 好吧,我希望访问者在键入或单击指向 mywebsite.com/page 的链接时被重定向到并看到 mywebsite.com/#page 的内容我只希望 facebook linter 看到内容的mywebsite.com/page 以便读取它包含的 Open Graph 元标记。
    • 然后,实现从mywebsite.com/pagemywebsite.com#page 的javascript 重定向。 FB 不会执行 Javascript,因此它不会重定向 - 用户的浏览器将执行重定向(并且他们的页面将在重定向期间闪烁到新内容)。仅供参考,您可能需要查看 FB 服务条款。谷歌会考虑这种“伪装”,这意味着向谷歌和用户提供不同的页面。伪装网站会受到 Google 的处罚。
    • 是的,但是就像我在标题中所说的,我需要语法方面的帮助 ;-)
    • 表示page1是一个页面名称(路径名?),根据用户访问的页面名称而变化。
    • 我没有这样写,因为你从来没有提到这是一个要求。
    【解决方案2】:
    <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>
    

    【讨论】:

      猜你喜欢
      • 2020-12-31
      • 2011-05-04
      • 2011-11-04
      • 2010-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 2013-05-05
      相关资源
      最近更新 更多