Javascript 使用直接链接触发onClick()事件

Javascript 使用直接链接触发onClick()事件,javascript,html,Javascript,Html,我有一个带有导航栏的网站。单击链接时,它使用onClick()处理程序更改页面内容 比如说。如果单击about us链接,页面内容将更改为about us内容,URL将变为xxxxx.com/#about。但是,当直接链接到xxxxx.com/#about时,会打开默认的index.php页面 如何直接链接到页面,就好像它是onClick()?您需要在页面加载时获取\something,然后如果找到它,用它调用onClick函数 tag = /#[^\s]+/.exec(document.loc

我有一个带有导航栏的网站。单击链接时,它使用
onClick()
处理程序更改页面内容

比如说。如果单击about us链接,页面内容将更改为about us内容,URL将变为
xxxxx.com/#about
。但是,当直接链接到
xxxxx.com/#about
时,会打开默认的
index.php
页面

如何直接链接到页面,就好像它是
onClick()

您需要在页面加载时获取
\something
,然后如果找到它,用它调用
onClick
函数

tag = /#[^\s]+/.exec(document.location.href);
tag = tag.substring(1);
// you have what you want
您需要在页面加载时获取
#something
,然后如果找到它,则使用它调用
onclick
函数

tag = /#[^\s]+/.exec(document.location.href);
tag = tag.substring(1);
// you have what you want

那么你是在用Ajax加载内容

一种快速而肮脏的方法是查看url

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

现在您知道了“页面”,您可以调用加载页面内容的任何函数,那么您是在用Ajax加载内容吗

一种快速而肮脏的方法是查看url

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

现在您知道了“页面”,您可以调用加载页面内容的任何函数

您可以调用onclick on page load中使用的函数

window.location.hash 

将在示例中为您提供#about,以便您可以加载(或显示)相关内容。

您可以调用onclick on page load中使用的函数

window.location.hash 
将在示例中为您提供#about,以便您可以加载(或显示)相关内容。

about只是指向页面中的一个部分,而不是实际更改页面。我猜onClick事件使用AJAX刷新页面,并通过更改document.location或类似内容来更新显示给用户的URL

一般来说,我会说不要使用AJAX进行导航。如果要切换到不同的页面,请让浏览器进行适当的更新,以便“后退”按钮可以按照用户的预期工作。在动态更改页面的某些部分时使用AJAX

如果您真的想要AJAX导航,请按照strada的建议使用window.location.hash

但也要注意,IE在使用大量Javascript语言结构时很容易出现问题。javascript和DOM对象之间的循环引用以及闭包可能会很快导致内存泄漏。其他浏览器也受到影响,但IE(包括9)似乎受影响最严重。如果你刷新页面,浏览器就很容易扔掉所有这些东西。

关于只是指向页面中的一个部分,而不是实际更改页面。我猜onClick事件使用AJAX刷新页面,并通过更改document.location或类似内容来更新显示给用户的URL

一般来说,我会说不要使用AJAX进行导航。如果要切换到不同的页面,请让浏览器进行适当的更新,以便“后退”按钮可以按照用户的预期工作。在动态更改页面的某些部分时使用AJAX

如果您真的想要AJAX导航,请按照strada的建议使用window.location.hash


但也要注意,IE在使用大量Javascript语言结构时很容易出现问题。javascript和DOM对象之间的循环引用以及闭包可能会很快导致内存泄漏。其他浏览器也受到影响,但IE(包括9)似乎受影响最严重。如果你刷新页面,浏览器就很容易扔掉所有这些东西。

很好,但是为什么要加载正确的内容,我必须发送带有
#whatever
的链接两次?很好,但是为什么要加载正确的内容,我必须发送两次带有
#which
的链接?