Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript子字符串方法辅助_Javascript - Fatal编程技术网

Javascript子字符串方法辅助

Javascript子字符串方法辅助,javascript,Javascript,长话短说,我正在开发一个web应用程序,并在其中使用AJAX。 我试图禁用单击链接时的默认操作,将哈希值附加到链接,然后从url中删除“#” 我遇到的问题是,尽管哈希值被相应地附加,但子字符串方法并没有提取“#”,而是提取它后面的字母 这是我的密码。顺便说一句,我在这里留下了我的评论,这样你就明白我的意思了 所以我不知道…我的逻辑或设置可能是错误的 $(document).ready(function(){ //app vars var mainHash = "index";

长话短说,我正在开发一个web应用程序,并在其中使用AJAX。 我试图禁用单击链接时的默认操作,将哈希值附加到链接,然后从url中删除“#”

我遇到的问题是,尽管哈希值被相应地附加,但子字符串方法并没有提取“#”,而是提取它后面的字母

这是我的密码。顺便说一句,我在这里留下了我的评论,这样你就明白我的意思了 所以我不知道…我的逻辑或设置可能是错误的

$(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,谢谢