站点前端的location.reload()干扰了站点的管理后端

时间:2013-04-18 13:18:42

标签: jquery drupal-7 drupal-ajax

这是我的代码:

// Reload screen after submission and completion of AJAX actions
$('.view-whiteboard, .view-whiteboard-full').ajaxStop(function() {
  location.reload();
});

我在Drupal网站的前端运行此代码,但出于某种原因,当我在后端管理面板中提交/保存任何内容时,上面的代码片段会重新加载页面。

我很困惑为什么要这样做,因为我在代码中定义了应该特定于前端表单的类名。

我在上面的代码中遗漏了哪些内容,以便我在每个表单提交时触发location.reload()?

任何帮助都会很棒。谢谢 -

1 个答案:

答案 0 :(得分:0)

从jQuery 1.8开始,.ajaxStop()方法只应附加到文档。你可以通过创建一个运行ajaxStop的.click函数来解决这个问题:

$(document).ready(function(){
    $(".view-whiteboard, .view-whiteboard-full").click(function(){
        $(document).one("ajaxStop", function() {
            location.reload();
        });
    });
});

否则,只需将public vs admin主题分开,以便它们不使用相同的javascript(必须禁用覆盖模块)。