我有一个主页“index.html”。这个主页是网站的入口,它是用 HTML5 完成的。该网站还有其他页面:
“about.html”、“work.html”、“portfolio.html”、“contact.html”
所以所有这些页面都有一个名为“contentDiv”的div,它有相应的副本/文本。用户通过“index.html”进入网站,如果用户点击以下导航链接之一:
关于 | 工作 | 投资组合 | 接触
“index.html”页面使用 JQuery 的 load() 调用加载点击页面的“contentDiv”的内容,然后使用动画在加载的 div 中滑动。
站点是向后兼容的,因此如果禁用 Javascript,则用户将被带到点击的页面,而不是让“index.html”通过 load() 调用加载内容。
顺便说一句,导航链接的编码如下:
<a href="about.html" title='About'>About</a>
一旦“index.html”加载了请求的内容,通过使用 pushState(),URL 就会更新。因此,如果用户单击“关于”链接,则 pushState() 会将 URL 更新为:
“http://www.abc.com/about.html”
我没有在 href 标签中插入任何哈希的原因是,我希望网站有一个后备,以防万一 Javascript 被禁用。这样,用户可以被引导到请求的页面('about.html')而不是“index.html”。
到目前为止,一切都按预期运行,但问题就在这里。当用户在“index.html”上并单击任何部分(例如“about.html”)时,将加载内容并通过 pushState() 更新 URL。所以现在 URL 是“http://www.abc.com/about.html”。现在,如果用户刷新页面(“index.html”),加载“about.html”而不是“index.html”执行 load() 调用。
假设我像这样编写导航 href 标签:
<a href="#about" title="about">About</a>
然后 URL 最终会在其中包含一个哈希值。如果我将链接“http://www.abc.com/#about”复制并通过电子邮件发送给用户,并且如果用户尝试通过禁用 javascript 的浏览器打开链接,则用户将无法访问“关于.html”,因为链接只有“#about”而不是“about.html”。
我正在尝试做的确实是可行的,我只是不知道如何处理它。如果有人能在这方面帮助我,那就太好了。
原谅我,这么长的描述。
谢谢你。