Я тестирую jquery.pjax.js и замечаю проблему.
В моем минимальном тестовом проекте происходит странное поведение, как показано ниже:
Такое поведение не происходит в 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
Я мог бы найти решение самостоятельно …
до:
$(function(){ // apply pjax });
после:
$(document).ready(function() { // apply pjax });
Теперь кнопка «назад» Firefox работает нормально.
Почему я не уверен.
Фактическое поведение их выглядит по-другому, хотя в нескольких текстах говорится, что два значения формы записи точно такие же …