我有一个带导航栏的网站。单击链接时,它会使用onClick()
处理程序更改页面内容。
例如。如果点击了关于我们的链接,则网页内容将更改为关于我们的内容,并且网址将变为xxxxx.com/#about
。但是,当直接链接到xxxxx.com/#about
时,它会打开默认的index.php
页面。
如何直接链接到网页,就好像它是onClick()
?
答案 0 :(得分:4)
您可以在页面加载时调用onclick中使用的函数。
window.location.hash
会在您的示例中为您提供#about,因此您可以加载(或显示)相关内容。
答案 1 :(得分:1)
您需要在页面加载时获得#something
,然后如果找到,请使用它调用onclick
函数。
tag = /#[^\s]+/.exec(document.location.href);
tag = tag.substring(1);
// you have what you want
答案 2 :(得分:0)
所以你用Ajax加载内容?
快速而肮脏的方法是查看网址
document.location.href
你可以像这样得到你正在寻找的行动
// get the url and split it at the "#" character into an array
var urlSplit = document.location.href.split("#");
// the 2nd item in the array will be the page
var page = urlSplit[1];
现在你知道'page',你可以调用任何加载页面内容的函数
答案 3 :(得分:0)
#about只是指向页面中的某个部分,而不是实际更改页面。我猜测onClick事件使用AJAX刷新页面,并通过更改document.location或类似内容更新显示给用户的URL。
一般来说,我会说不要使用AJAX进行导航。如果您要更改为其他页面,请让浏览器进行适当的更新,以便后退按钮可以按照用户的预期进行操作。当您动态更改页面的某些部分时,请使用AJAX。
如果你真的想要AJAX导航,请按照strada的建议使用window.location.hash。
但是请注意,在使用大量Javascript语言结构时,IE很容易遇到问题。 javascript和DOM对象之间的循环引用以及闭包很快就会导致内存泄漏。其他浏览器也受到影响,但IE(包括9)似乎受到的影响最大。如果刷新页面,浏览器就很容易抛弃所有这些内容。