这似乎是一个愚蠢的问题。但我不知道是否可以做到。所以在我开始制作投资组合网站的过程之前,我想要一些指示。否则,我会选择其他设计。
我的问题:
使用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为例。
或者我应该采用完全不同的方法? :)
答案 0 :(得分:2)
它可以使用哈希链接完成,最初设计为跳转到页面上的某个div现在经常用于在单个页面上加载动态页面
所以你可以链接到http://rplambech.dk/ascencor/index.html#floor5
例如
然后有一些像
这样的javascriptvar loc = location.hash.split("#")[1];
然后
if(loc == 'floor5'){
//execute goto floor 5 code
}
答案 1 :(得分:2)
从您的问题及其评论的上下文中,您正在寻找单页面应用这一术语。
有很多方法可以做到这一点,其中一些方法使用历史对象来支持浏览器的“后退”和“前进”按钮。
我建议您搜索“单页应用程序”这一术语,同时检查以下一些(或所有)框架(它们将简化您的开发并使您的生活更轻松,而不是处理#
和令人讨厌的低级别ajax调用:
答案 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以获取更多信息。