gpt4 book ai didi

php - PJAX 和 Firefox 后退按钮问题

转载 作者:行者123 更新时间:2023-11-28 09:16:20 25 4
gpt4 key购买 nike

我正在测试 jquery.pjax.js 并注意到一个问题。
在我的最小测试项目中,发生了如下奇怪的行为:

  1. 在fireflx中访问index.php
  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

最佳答案

我本可以自己找到解决方案...

之前:

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

之后:

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

现在 Firefox 后退按钮看起来工作正常。
我不确定原因。 尽管有几篇文章说这两种书写形式含义完全相同,但它们的实际行为看起来不同...

关于php - PJAX 和 Firefox 后退按钮问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15597625/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com