【问题标题】:How to make AJAX called pages to reload in the browser如何让 AJAX 调用的页面在浏览器中重新加载
【发布时间】:2012-02-22 18:14:20
【问题描述】:

我想说的第一件事是我尝试了许多代码和插件,但对我没有任何帮助。我只想让浏览器中的“后退”和“前进”按钮再次调用被称为 AJAX 的页面,以便在单击按钮后显示它们。我希望你明白我不是开发者:)。

请帮帮我,这就是此时此刻的工作......:)

处理程序:

<li><a href="#" class="ceni">примерни цени</a></li>
<li><a href="#" class="karieri">кариери</a></li> 

javascript:

$('.ceni').click(function(){ 
    $.ajax({
        url: 'pages/ceni.php',
        success: function(response) {
            $("#pages").html(response);
        }
    });       
});   

$('.karieri').click(function(){     
    $.ajax({
        url: 'pages/karieri.php',
        success: function(response) {
            $("#pages").html(response);
        }
    });       
});

【问题讨论】:

  • I hope you get that i am NOT developer。很抱歉,Stack Overflow 适合开发人员或愿意学习并成为开发人员的人。如果您不是开发人员,也不愿意学习一些东西,您可以考虑聘请开发人员为您完成这项工作。
  • 你可能想看看 jQuery 历史插件:tkyk.github.com/jquery-history-plugin
  • @DarinDimitrov 我把它更多地解释为我们需要解释我们通常认为理所当然的事情,而不是不愿意为自己学习或做任何工作。不过,我可能是错的。
  • 我现在正在学习,我学到了很多东西,但不是在 javascript 中。我愿意创建网站并创建了一些类似athome-bg.com 的网站,但我不能像我认为的这个网站中的人那样称自己为开发人员。

标签: jquery ajax


【解决方案1】:

试试这个:

    $('.ceni').click(function(){      

             $.ajax({
type: 'GET',
url: 'pages/ceni.php',
success: function(response) {
 $("#pages").html(response);
}
});       
});

【讨论】:

  • 这对这个问题有什么作用?
  • 仍然依赖于点击,这不是所要求的。
  • 这是我的错。 “页面”是不可见的。
【解决方案2】:

最常见的方法是使用插件来监控 hashchange 事件并重新请求 ajax 页面。

<li><a class="ceni"    href="#ceni">примерни цени</a></li>
<li><a class="karieri" href="#karieri">кариери</a></li>

设置哈希更改处理程序:

jQuery(window).bind('hashchange', function() {
  var pageHash = location.hash.substr(1);
  if('ceni|karieri|'.indexOf(pageHash + '|') >= 0) {
    jQuery("#pages").load(pageHash + '.php');
  }
});

通过 jQuery 将内容加载到元素中记录在 http://api.jquery.com/load/ 并且与使用 jQuery.ajax 发出请求基本相同。

作为替代方案,您可以使用http://html5demos.com/history 中记录的 HTML5 历史 API - 它允许您在没有哈希的情况下保持地址栏看起来整洁。

如果需要支持 IE7 及以下版本,请为 hashchange 事件使用 polyfill,例如 http://benalman.com/projects/jquery-hashchange-plugin/

【讨论】:

  • 谢谢你,但你的代码对我不起作用。我尝试了 Ben Alman 的插件,但也不起作用。我不明白出了什么问题。没关系:),谢谢。非常感谢您的帮助。上帝保佑。
  • 没问题 - 您使用的是什么浏览器? jsfiddle.net/steveukx/gU6g9 这是 Chrome 中的一个工作示例
  • 只出现弹出窗口,但我说“ok”,上一页不会重新加载。
  • 我没有将 ajax 放入小提琴中(如上面的示例中所示),因此警报仅用于说明目的...单击链接几次,您会看到警报对于每次点击,然后在浏览器历史记录中使用“返回”,您将看到由于 hashchange 事件而触发的警报
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
相关资源
最近更新 更多