Javascript子字符串方法辅助
长话短说,我正在开发一个web应用程序,并在其中使用AJAX。 我试图禁用单击链接时的默认操作,将哈希值附加到链接,然后从url中删除“#” 我遇到的问题是,尽管哈希值被相应地附加,但子字符串方法并没有提取“#”,而是提取它后面的字母 这是我的密码。顺便说一句,我在这里留下了我的评论,这样你就明白我的意思了 所以我不知道…我的逻辑或设置可能是错误的Javascript子字符串方法辅助,javascript,Javascript,长话短说,我正在开发一个web应用程序,并在其中使用AJAX。 我试图禁用单击链接时的默认操作,将哈希值附加到链接,然后从url中删除“#” 我遇到的问题是,尽管哈希值被相应地附加,但子字符串方法并没有提取“#”,而是提取它后面的字母 这是我的密码。顺便说一句,我在这里留下了我的评论,这样你就明白我的意思了 所以我不知道…我的逻辑或设置可能是错误的 $(document).ready(function(){ //app vars var mainHash = "index";
$(document).ready(function(){
//app vars
var mainHash = "index";
var menuBtn = $('.leftButton');
//~~~~~~load the index page at first go.
loadPage();
//~~~~~~~~~~~~~~~~~~~~~~~~~~~menu show/hide
menuBtn.click( function(){
$('#menu').toggleClass();
});
//Menu items on click , disable link default actions.
$('#menu a').click( hijackLinks );
//~~~~~~~~~~~~~~~~~~~~~~~~~~~functions for mobile index load AND hijacking app links to AJAX links.
function loadPage(url){
if( url == undefined){
$('#contentHere').load('index.html #content', hijackLinks);
window.location.hash = mainHash;
} else {
$('#contentHere').load(url + '#content', hijackLinks );
}
}
function hijackLinks(e){
var url = e.target.href;
e.preventDefault();
loadPage(e.target.href);
window.location.hash = $(this).attr("href").substring(1);
}
});
我想要的是从url中删除“#”。我做错了什么,我没有看到/理解什么
我尝试过substring/substr等,两者都做了同样的事情,无论我选择在substring参数中插入什么数字,它们都会删除所有内容,除了“#”lol…”
感谢高级版。好吧,您并没有真正更改链接本身,您只是更改了
窗口.location.hash
,并且hash在开始时总是有一个“#”
要更改整个url(并删除“#”)需要执行的操作是
虽然你应该知道它只适用于较新的浏览器(确切的浏览器版本在链接中),但是如果你将网站定位于较旧的浏览器,你可能需要考虑使用散列进行回退。如果你决定这样做,我建议你搜索一个插件,而不是自己制作。您好,谢谢您的回答,我认为这个回答不正确。一般来说,“#hash_name_here”都是我可以读回的字符串的一部分,如果它是一个字符串,那么我应该能够从中提取数据。我理解你关于“操纵浏览器历史”的说法,但是…我知道我可以从其余部分中去掉“#”…对不起,但是你想做的是不可能的。我想,你是对的,lol。我正在用那个字符串做其他事情,而且…嗯,你是对的,lol,谢谢