0

我是 ajax wordpress 的新手,我已经用 ajax 显示了帖子,但是现在我有问题我想用 ajax 显示上一篇文章,这意味着我已经用 ajax 显示了帖子,当用户点击一个帖子时,它会显示和单击浏览器后退按钮时,不会显示以前的帖子。谁能告诉我如何使用浏览器后退按钮显示上一个 wordpress ajax 帖子。这是我用过的代码

 <script type="text/javascript">
    jQuery(document).ready(function($) {
    jQuery(".ajaxclick").click(function() {
    var post_id1 = $(this).parent("li").attr("id");
    var pageurl = $(this).attr('href');
    alert(pageurl);
    var ajaxURL = '<?php echo get_admin_url(); ?>admin-ajax.php';
    $.ajax({
    url: ajaxURL,
    type: 'POST',
    beforeSend: function() {
    $("#loading-animation").hide();
    $("#ajaxloader").show();
    },
    complete: function() {
    $("#loading-animation").show();
    $("#ajaxloader").hide();
    },
    data:   {
    action: 'load-content',
    post_id: post_id1 
    },
    success: function(response) {
    jQuery("#loading-animation").addClass('loadingstyle');
    jQuery("#loading-animation").html(response);
    return false;
    }

    });
    });
    });
    </script>
4

3 回答 3

1

使用哈希#

$(function(){
   if(location.hash === 'somepage'){
     //do ajax again automatically here
   }
 });

并在成功时添加哈希:

success: function(response) {
jQuery("#loading-animation").addClass('loadingstyle');
jQuery("#loading-animation").html(response, function(){
   location.hash = 'somepage';//<<-- must be identic with loaded page and same with above
});

祝你好运!

于 2013-04-15T04:49:40.257 回答
0

有一个 jquery 插件似乎可以有效地管理它

这个 jQuery 插件通过跨浏览器 HTML5 window.onhashchange 事件启用了非常基本的可书签#hash 历史记录。

http://benalman.com/projects/jquery-hashchange-plugin/ https://stackoverflow.com/a/173075/1061871

html5 解决方案:https ://developer.mozilla.org/en-US/docs/DOM/window.onpopstate

于 2013-04-15T04:59:14.490 回答
0

您好已经解决了这个问题,现在 ajax 帖子可以正常使用浏览器后退按钮和前进按钮,此代码在 ajax 帖子加载 ajax 后使用,然后此代码将用于显示浏览器后退按钮这里是代码:

    // Bind an event to window.onhashchange that, when the hash changes, 
$(window).on('hashchange', function(){
//check if hash tag exists in the URL
if(window.location.hash) {
var ajaxURL1 = '<?php echo get_admin_url(); ?>admin-ajax.php';
//set the value as a variable, and remove the #
var post_id1= window.location.hash.substring(1);
$.ajax({
url: ajaxURL1,
type: 'POST',
cache:false,
data:   {
action: 'load-content',
post_id: post_id1
},
success: function(response) {
jQuery("#loading-animation").addClass('loadingstyle');
jQuery("#loading-animation").html(response);
return false;
}   
});
}
else
{
window.location="http://203.134.217.4/testingwp/";
}
});
于 2013-04-23T04:54:55.777 回答