我有一个主页“index.html”。这个主页是通过HTML5完成的网站入口。还有其他网页的网站:HTML5将外部内容加载到div并使用pushState()?
“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的()更新网址:
“http://www.abc.com/about.html”
我之所以没有插入任何散列成href标签,因为我希望网站有一个后备箱,以防止Javascript被禁用。这样,用户可以被定向到请求的页面('about.html')而不是“index.html”。
到目前为止,所有的预期效果都很好,但这里是问题所在。当用户在“index.html”上并点击任何一个部分,例如“about.html”时,内容被加载并且URL通过pushState()更新。所以现在URL是“http://www.abc.com/about.html”。现在,如果用户刷新页面(“index.html”),则会执行“about.html”而不是执行load()调用的“index.html”。
比方说,如果我的代码的导航HREF标记是这样的:
<a href="#about" title="about">About</a>
那么URL结束有它的哈希值。如果我将链接“http://www.abc.com/#about”复制并通过电子邮件发送给用户,并且用户试图通过JavaScript禁用的浏览器打开链接,则用户将无法获得“about .html“,因为链接只有'#about'而不是”about.html“。
我想要做的事情确实可行我只是不知道如何处理它。如果有人能帮助我,那将是美好的。
原谅我,这么长的描述。
谢谢。
所以你遇到的问题是刷新?你为什么把hashtag放在href里面? – ama2 2012-08-17 03:18:38