我有一个主页,我想导航到其他页面,比如博客或图库,但没有地址栏中的URL进行更改。我知道它可以在服务器端,但在Javascript中怎么办?
这是我的HTML / JS代码:
//HTML
<ul>
<li><a onclick="openPage('contact.html')">Contact Us</a></li>
<li><a onclick="openPage('blog.html')">Blog</a></li>
<li><a onclick="openPage('gallery.html')">Gallery</a></li>
</ul>
//Javascript
function openPage(url){
// All these will forward but will change the URL
//window.open(url);
//window.location.href=url;
//self.location=url;
//window.location.replace(url);
}
最初,网址为http://something.com/mainpage.html
即使导航到任何页面也应该保持不变。
这是我所拥有的一个非常简单的例子。那么,在客户端没有服务器是否可能?如果没有,那么在服务器端最简单的方法是什么?假设我正在使用Java / JSF。
答案 0 :(得分:2)
如果您想阻止重新加载页面,则必须添加哈希#
。
css-tricks.com有一个很棒的截屏视频,请看:
Best Practices with Dynamic Content
请在stackoverflow changing-the-url-without-reloading-the-page
中查看此问题答案 1 :(得分:0)
我会给你一个提示。然后,您可以自己编写代码。
使用ajax,获取要打开的整个页面。 (我假设他们在同一台服务器上。)
然后解析html.responsetext&amp;找到获取页面的body.innerHTML
然后使用document.body.innerHTML = fetched_body_innerHTML;
也以类似的方式更改document.title。
我假设两个页面都有相同的CSS(为了看起来一致),很可能,加载了相同的js文件。
如果您在2页上有不同的CSS&amp; /或js文件集,则需要创建其他节点&amp;删除旧脚本/链接节点。 (但是,结果不一样,因为旧的JS已经加载了,并且在更改了body的innerHTML之后不会触发body.onload。