有没有可能在没有服务器往返的情况下更新地址栏?



我有一个用CSS实现的树视图,当用户单击树视图上的文件夹时,我想在地址栏中更新URL,而不会导致服务器往返。

HTML看起来像这样:-

<ol>
    <li>
        <a href="www.example.com/blah?id=12345">Folder</a>
        <ol>
            <li>Child</li>
        </ol
    </li>
<ol>

CSS我有处理文件夹的扩展,但我想地址栏URL更新,所以我可以深链接到一个特定的文件夹,但没有必要从代码的角度做一个往返到服务器有什么方法可以做到这一点吗?我有一种感觉,这可能是不可能的,因为潜在的网络钓鱼??

我使用HTML5, CSS2/3, jquery和ASP。净MVC3

HTML5添加了一个历史API,它允许您在现代浏览器中使用history.pushState()来更新URL。由于安全原因,您只能使用同一域。

直到IE10才会在IE中支持。Firefox, Safari, Opera和Chrome都已经实现了。

是的,使用HTML 5历史API是可能的,就像在gawker网站和github上做的那样。但条件是两个页面都来自同一服务器。比如你可以从

更改地址
http://www.exemple.com/page1.html

:

http://www.exemple.com/page2.html

使用history.replaceState函数。并非所有浏览器都广泛支持它(caniuse)。最好的办法可能是使用history.js

相关内容

最新更新