我在互联网上看到了一些像这样的工作:
<a href="./someplace.html"> Link </a>
通常会打开链接或者JS不活动:
http://www.domain.com/someplace.html
但是当JS处于活动状态时,它会像这样打开并将外部页面加载到同一页面而不刷新页面:
http://www.domain.com/#/someplace.html
怎么可能?有人可以帮忙吗?
我首先试图谷歌,也搜索这个网站,但没有找到一个好的答案。
答案 0 :(得分:3)
$("a").click(function() {
var $this = $(this),
href = $this.attr("href");
$(document.body).load(href);
location.href = "#" + href;
});
有关详细信息,请参阅jQuery.fn.load。
答案 1 :(得分:1)
您在问题中提供的示例与哈希相关。
哈希是当前文档内部的超链接引用。
当您看到使用file.html#name_of_smth
的链接时,该页面中的锚点可能类似于<a name='name_of_smth'>blah</a>
。
这不一定是JavaScript的东西,如果您使用散列和名称(如示例here)构造锚点,则可以使用它。
如果您想通过JavaScript使用它,您需要做的就是修改window.location.hash
。
FaceBook和其他网站现在采用的方式是更好。他们使用AJAX将数据重新加载到页面中(如此处的其他答案所示),并使用window.history.pushState()
作为示例here来通知浏览器新数据属于不同的URL。这会更改地址栏中的URL而不重新加载,并允许正确的书签和重新加载/刷新。
答案 2 :(得分:0)
您可以通过AJAX请求新页面来执行此操作,然后将内容插入当前页面。
在this question中写了更多有关此内容的详细信息。