我的网站包含所有动态加载的内容。
我编写了一些JS函数,根据收到的URL更改内容。如果有人访问www.mysite.com/#1056,则会加载该内容。
function getLocationHash() {
//check if there is a location hash in the address bar, get that URL
if (window.location.hash != '') {
processURL()
}
}
然后它调用processURL函数
function processURL() {
if (window.location.hash != '') {
urlHash = window.location.hash;
//if it's a catalog item, it has a number above #1000
if (urlHash > 10000) {
getDetail(urlHash);
}
这适用于历史记录或直接跳转到网站上的网址 - 但是,其他网站无法遵循此规则。例如,如果我将www.mysite.com/#1056输入Facebook状态,FB只会搜索www.mysite.com索引页面。它没有贯穿JS的末尾。这是因为JS正在寻找'窗口'属性吗?
Google抓取也是如此。我设置了包含所有哈希网址的站点地图,但Google只会抓取索引页面。
所以问题是:我如何利用我在这里的内容并正确格式化Facebook和谷歌等其他服务可以“看到”的网址?
任何提示都会非常感激。
答案 0 :(得分:5)
#
表示片段标识符的开头。这是你链接到页面的一部分。
JavaScript经常被滥用来通过Ajax加载不同的内容,但这只有在客户端运行JS时才有效。
谷歌和Facebook使用的刮刀不运行JS。
答案 1 :(得分:-1)
这些是我研究这个时发现的解决方案。
对于抓取,有'hashbang',如google网页中所述。https://developers.google.com/webmasters/ajax-crawling/docs/learn-more?hl=nl
对于Facebook上的链接,您可以使用html5 pushstate。 http://badassjs.com/post/840846392/location-hash-is-dead-long-live-html5-pushstate