2013-03-24 1 views
1

Я тестирую jquery.pjax.js и замечаю проблему.
В моем минимальном тестовом проекте, странное поведение, как показано ниже бывает:Проблема с кнопкой PJAX и Firefox

  1. Доступ к index.php в fireflx
  2. Нажмите ссылку pjax: расположение бара и страницы содержимого изменяются
  3. Нажмите кнопку назад Firefox,: полоса настройки изменяется, но содержимое остается

Такое поведение не происходит в GoogleChrome.
Я хочу знать, как это решить.

Мой тестовый проект:
http://karasunouta.com/php_test/pjax/
http://karasunouta.com/files/pjax.zip

index.php

<?php 
    $page = 1; 
    if (isset($_GET['page'])) { 
     $page = $_GET['page']; 
    } 

    $isPjax = false; 
    if (!empty($_SERVER['HTTP_X_PJAX'])) { 
     $isPjax = true; 
    } 

    if (!$isPjax): 
?> 
    <!DOCTYPE html> 
    <html> 
     <head> 
      <meta charset="UTF-8"> 
      <title>page<?php echo $page; ?></title> 
      <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> 
      <script type="text/javascript" src="js/jquery.pjax.js"></script> 
      <script type="text/javascript"> 
       $(function(){ 
        // link 
        $(document).pjax('a.pjax', '#main'); 

        // form 
        $(document).on('submit', 'form', function(event) { 
         $.pjax.submit(event, '#main') 
        }) 
       }); 
      </script> 
     </head> 
     <body> 
      <h1>pjax test</h1> 
      <ul class="links"> 
       <li><a href="?page=1" class="pjax">page1</a></li> 
       <li><a href="?page=2" class="pjax">page2</a></li> 
       <li><a href="?page=3" class="pjax">page3</a></li> 
      </ul> 
      <form> 
       Page:<input name="page" type="text" value="1"> 
       <input type="submit"> 
      </form> 
      <div id="main" style="border: 3px double gray"> 
<?php endif; ?> 
       <?php include("page/{$page}.html") ?> 
<?php if (!$isPjax): ?> 
      </div> 
     </body> 
    </html> 
<?php endif; ?> 

страница/1.html

page1 contents 

страница/2.html

page2 contents 

страница/3.html

page3 contents 

JS/JQuery-1.9.1.min.js
JS/jquery.pjax.js

+0

я столкнулся точно такая же проблема с JQuery 1.9.1 и jquery.pjax.js – Baaju

+0

Спасибо за ваш ответ, Baaju. Пожалуйста, проверьте это: http://stackoverflow.com/questions/15597625/pjax-and-firefox-back-button-issue/15657057#answer-15657057 – karasunouta

ответ

0

я мог бы найти решение самостоятельно. ..

перед:

$(function(){ 
    // apply pjax 
}); 

после:

$(document).ready(function() { 
    // apply pjax 
}); 

Теперь кнопка Firefox назад выглядит нормально.
Я не уверен, почему.
Фактического поведение них выглядит по-разному, хотя некоторые тексты говорят два письменная форма значения точно такие же ...

Смежные вопросы