JavaScript在散列后检索字符串
JavaScript retrieve string after hash
我试图在我的哈希符号后面找到字符串,这样当用户重新加载页面时,我可以只查看该字符串,然后动态加载正确的页面。我的url看起来像这个http://mysite.com/#!/account/
。如何仅检索/account/?我试过使用这个:
var oldLoc = window.location,
patt = /#!(.+)/,
newLoc = oldLoc.match(patt)[1]; // This returns `/account/settings`
if (newLoc == '' || newLoc == '#!/' || newLoc == '/#!' || newLoc == '/#!/') {
$('#reload_section').load('main.php');
} else if (newLoc == '/newsfeed/') {
$('#reload_section').load('newsfeed.php');
} else if (newLoc == '/account/') {
$('#reload_section').load('account.php');
} else if (newLoc == '/search/') {
$('#reload_section').load('ajaxsearch.php');
}
如果我在oldLoc
变量中放入一个类似http://mysite.com/#!/account/
的值,这会很好,但如果我放入我所拥有的,就会出现以下错误:
TypeError: 'undefined' is not a function (evaluating 'oldLoc.match(patt)')
1) 为什么这个不起作用,我试过所有不同的组合window.location,document.location,都不起作用
2) 有没有一种更简单的方法可以找到页面的哈希值,然后如上所示加载正确的页面?
谢谢!
使用window.location.hash
。对于URL http://mysite.com/#!/account/
,它将返回#!/account/
。现在,只需使用正则表达式将#!
从前面去掉即可
window.location.hash.replace(/^#'!/,"")
以上代码将为您提供/account/
。
编辑:你也可以使用这个:
window.location.hash.substring(2)
您可以使用
window.location.hash
window.location对象有一个hash属性,它包含has符号之后(包括)的所有内容。要获取#之后的所有内容,请去掉前导哈希符号:
window.location.hash.substring(1)
还可以考虑一下一些JavaScript路由库,如
- Crossroads.js(仅限路由)
- Backbone.js(提供通用的客户端应用程序结构,其中包括一个支持pushState的有用路由器)
您可以尝试查看Crossroads和Hasher库。你可以把它们放在一起做我认为你想做的事。
// setup your routes
crossroads.addRoute('newsfeed.php', function() {
// do some stuff
});
//setup hasher
hasher.initialized.add(crossroads.parse, crossroads); //parse initial hash
hasher.changed.add(crossroads.parse, crossroads); //parse hash changes
hasher.init(); //start listening for history change
相关文章:
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 从Meteor中的数组中检索字符串
- 如何解析文本区域中的结构化字符串数据(接近JSON)以检索其所需的属性
- 解析字符串包含'"'从mysql检索到JSON
- 从字符串中检索自定义参数的值
- 如何检索其属性为给定参数的子字符串的所有文档
- 字符串比较显示从flash[:alert]检索到的字符串上的错误
- 将选择器检索为插件中的字符串
- JQuery:参数:硬编码字符串与 ajax 检索到的字符串
- 在解析中检索字符串
- 正则表达式:检索字符串第一次出现之前的行
- 从 json 字符串中检索数组值
- 如何从 JSON 字符串中检索多个属性值
- Javascript:如何检索*字符串*数字的小数位数
- Javascript 检索字符串数组值错误
- 如何使用正则表达式检索字符串中的两个数字
- 使用正则表达式检索字符串的特定部分
- 从Meteor中的数组中检索字符串形式的值
- JavaScript在散列后检索字符串
- 在JQuery中检索字符串开头的整数