1

在我的应用程序中,我使用了这种技术:

<body id="action" class="controller">

有没有办法将它与pjax 一起发送#container

4

1 回答 1

0

假设您使用的是 Rails:

我不知道您使用什么来生成服务器端响应。我正在使用rack-pjax,并且能够修改库以在主体上设置类和 id,如下所示:

--- pjax.orig.rb    2012-05-04 22:46:22.000000000 -0700
+++ pjax.rb 2012-05-04 22:46:57.000000000 -0700
@@ -13,6 +13,10 @@
       headers = HeaderHash.new(headers)

       if pjax?(env)
+        request_parameters = env['action_dispatch.request.parameters']
+        controller_name    = request_parameters[:controller]
+        action_name        = request_parameters[:action]
+
         new_body = ""
         body.each do |b|
           parsed_body = Hpricot.XML(b)
@@ -22,6 +26,13 @@

             new_body << title.to_s if title
             new_body << container.inner_html
+            new_body << <<-EOS
+              <script type="text/javascript">
+                $('body').removeClass();
+                $('body').addClass('#{controller_name}');
+                $('body').attr('id', '#{action_name}');
+              </script>
+            EOS
           else
             new_body << b
           end
于 2012-05-05T05:54:16.537 回答