0

这似乎是一个愚蠢的问题。但我不知道是否可以做到。因此,在我开始制作投资组合网站之前,我想要一些建议。否则,我会选择另一种设计。

我的问题:

使用 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/

所以是的,使用这种方法,我永远不会更改 url,因此我只能索引一个页面。

有没有一种方法可以在不更新网站的情况下更改 URL?例如,我可以去http://rplambech.dk/ascencor/floor5吗?

如果不可能,那么每次我点击一个新的“页面”时,我至少可以覆盖页面的标题。以一些 PhP 为例。

还是我应该采用完全不同的方法?:)

4

5 回答 5

1

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

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

然后有一些像

var loc = location.hash.split("#")[1];

然后

     if(loc == 'floor5'){
         //execute goto floor 5 code
      }
于 2014-03-21T16:18:42.407 回答
1

根据您的问题及其评论,您正在寻找术语单页应用程序。

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

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

  1. 骨干.js
  2. 角JS
  3. 余烬.js
于 2014-03-21T16:21:07.060 回答
0

如此处所述,history.pushState与 HTML5 一起使用。

<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>

网址:

<a href="#" id='click'>Click to change url to bar.html</a>
于 2014-03-21T16:18:43.293 回答
0

不,您不能在不访问服务器的情况下更改 URL。

然而,JQuery 确实有一个很酷的页面加载器,可以加载一个页面。 如何使用 jquery 将整个 html 页面放入 div 中?

于 2014-03-21T16:21:36.557 回答
0

您不能在不刷新页面的情况下将 url "/ascencor" 更改为 "/ascensor/floor5"。

但您可以更改为“/ascensor/#floor5”(添加井号)。我建议您尝试angularjs以获取更多信息。

于 2014-03-21T16:24:43.243 回答