我可以在不更新页面的情况下更改URL吗?

时间:2014-03-21 16:07:12

标签: javascript php jquery html5 ascensor

这似乎是一个愚蠢的问题。但我不知道是否可以做到。所以在我开始制作投资组合网站的过程之前,我想要一些指示。否则,我会选择其他设计。

我的问题:

使用ascencor.js插件时,我网站上的所有内容都在一个文件中。我将永远不会去一个新的网址,比如/ contact或/ about。

但后来我想知道,谷歌呢?

我的所有内容都会放在不同的不同类中,但在同一个文件中:

<div class="floor floor-1">
    <span class="text">Floor 1</span>
</div>
<div class="floor floor-2">
    <span class="text">Floor 2</span>
</div>

查看此处的示例:http://rplambech.dk/ascencor/

所以是的,使用这种方法,我永远不会更改网址,所以我只能索引一页。

有没有办法可以在不更新网站的情况下更改网址?我能够以http://rplambech.dk/ascencor/floor5为例吗?

如果不可能,我每次点击新的&#34;页面时都可以至少覆盖页面标题。以某些PhP为例。

或者我应该采用完全不同的方法? :)

5 个答案:

答案 0 :(得分:2)

它可以使用哈希链接完成,最初设计为跳转到页面上的某个div现在经常用于在单个页面上加载动态页面

所以你可以链接到http://rplambech.dk/ascencor/index.html#floor5例如

然后有一些像

这样的javascript
var loc = location.hash.split("#")[1];

然后

     if(loc == 'floor5'){
         //execute goto floor 5 code
      }

答案 1 :(得分:2)

从您的问题及其评论的上下文中,您正在寻找单页面应用这一术语。

有很多方法可以做到这一点,其中一些方法使用历史对象来支持浏览器的“后退”和“前进”按钮。

我建议您搜索“单页应用程序”这一术语,同时检查以下一些(或所有)框架(它们将简化您的开发并使您的生活更轻松,而不是处理#和令人讨厌的低级别ajax调用:

  1. backbone.js
  2. angularJS
  3. ember.js

答案 2 :(得分:1)

history.pushState与HTML5一起使用here

<script type="text/javascript">
var stateObj = { foo: "bar" };
function change_my_url()
{
   history.pushState(stateObj, "page 2", "bar.html");
}
var link = document.getElementById('click');
link.addEventListener('click', change_my_url, false);
</script>

URL:

<a href="#" id='click'>Click to change url to bar.html</a>

答案 3 :(得分:1)

不能在不进入服务器的情况下更改URL。

然而,

JQuery确实有一个很酷的页面加载器,可以加载一个页面。 How to put a whole html page in a div using jquery?

答案 4 :(得分:1)

您无法在不刷新页面的情况下将网址“/ ascencor”更改为“/ ascensor / floor5”。

但你可以改为“/ ascensor /#floor5”(添加了哈希标志)。我建议你试试angularjs以获取更多信息。

相关问题