当我尝试向我的网站添加一个带有 url+hash ( example.com/#TEST ) 的 FB Like 按钮时 然后我尝试单击“赞”按钮 - 它在新闻提要 (example.com) 中共享没有哈希的链接。
当我尝试用“%23”代替“#”(example.com/%23TEST)来设置按钮时 - 它会在计数框中分别计算每个哈希值。
有什么办法可以用散列来放置一个喜欢的按钮 - 并且仍然计算没有散列的 url 吗?
谢谢!
最佳答案
当您创建类似 Facebook 的按钮时,Facebook 使用 cURL(纠正我的人)来访问您的具有元数据的 URL。因此,如果 cURL 看到不同的元数据,对于每个 URL,您将获得不同的 LIKE 按钮。
但这并没有发生;与在服务器端一样,Facebook 会为每个启用 #
的动态链接看到相同的 URL。由于 #
之前的链接部分是相同的。显然,JavaScript(或任何可以在 URL 中创建散列的行为)被忽略,因为它的行为是客户端唯一的东西。
最好的方法是使用 JavaScript 动态创建按钮,并将每个按钮的 URL-to-like 更改为友好的无哈希值。
abc.com/def#part1
abc.com/def#part2
// to
abc.com/def/part1
abc.com/def/part2
仅供 curl 脚本将其视为不同的 URL。
当用户点击该链接 - abc.com/def/part1
- 你将需要服务器端帮助以及重定向到 View part1
来自路线 def
。所以你会,在你的路由器代码中,只加载到路由 def
(想象一下 MVC),然后要求 Controller 加载 View part1
,启用 JavaScript 以附加URL 哈希 #part1
。
关于带有哈希的 Facebook Like 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791391/