使用ajax将变量附加到地址栏

时间:2014-02-01 12:43:05

标签: jquery ajax history

是否可以在不重新加载页面的情况下将var url变量附加到地址栏。这是我第一次使用ajax。

编辑:什么是事件目标节点 编辑2:得到它,比我想象的要简单得多..

history.pushState(null, null, url);


        $('a[href^="/"]').unbind('click').click(function(e){
            var url = $(this).attr('href');
            e.preventDefault();
            $.ajax({
                url: url,
                success: function( result ){
                    response = $('<div id="temp-ajax-response-holder" style="display: none;"></div>');

                    response.html(result);
                    if (response.find('#ajax').first().find('.header').length > 0 ) $('body').removeClass("home archive").addClass('single');
                    else if(response.find('#ajax').first().find('.archive_title').length > 0 ) $('body').removeClass("home single").addClass('archive')
                    else $('body').removeClass("single archive").addClass('home');
                    if (response.find('#ajax').first().find('.header').length > 0 )
                        $('body').attr('class', 'single single-post');
                    $('body #ajax').html(response.find('#ajax').first().html());
                    bindHTML();
                    response.html('');

                }
            });
    });

2 个答案:

答案 0 :(得分:0)

是的,只有浏览器支持HTML 5。

有一种推动状态。 查看此链接

http://diveintohtml5.info/history.html

演示是

http://html5demos.com/history

答案 1 :(得分:0)

我想到的第一件事就是History API。如果您的浏览器支持它,您可以更改地址栏中的位置,甚至可以通过浏览器历史记录使其可用。这允许使用后退按钮。

history.pushState(null, null, yourNewUrl);

如需进一步介绍,我建议您阅读http://diveintohtml5.info/history.html