我正在创建一个网站,我想通过 AJAX 动态加载页面。我正在使用History.js,但我认为我做得不太对。
基本上我有一个index.php页面和一些其他页面:portfolio.php、contact.php等等。这些额外的 php 文件包含一个简单的 HTML/PHP 代码,它必须动态替换索引页面中 DIV 的内容,称为#post-content。
当我单击索引页面中的菜单链接时,会通过onClick事件调用 JS 函数showPage(),该函数仅以不带“.php”的页面名称作为参数。该函数声明如下:
function showPage(page) {
var History = window.History;
History.pushState(null, page, "index.php?page=" +page);
$("#post-content").load(page + ".php");
}
在上面的函数中还实现了其他视觉效果,比如fadeIn或fadeOut,但我删除了它们以使代码在这里更具可读性。
该功能为我提供了我需要的一切,或者几乎。使用 Google Chrome 测试我的网站,如果我单击菜单中的特定链接,例如“ portfolio ”,我会正确访问?page=portfolio.php。如果我在浏览器中手动键入 URL(例如,如果其他人给了我指向该页面的直接链接),则不会发生这种情况。这是因为函数 showPage() 没有被调用。
所以我在 index.php 页面上方添加了一个外部代码:
<?php
if(isset($_GET['page'])) { // Checks if the url contains the "page" parameter.
?>
<script>
$(function() {
showPage('<? echo htmlentities($_GET['page']); ?>');
});
</script>
<?
}
?>
这给了我想要的结果。
在这一点上,我需要专家的建议。我做对了吗?这是在网站内实现 jQuery AJAX 的正确方法吗?我觉得我做错了,非常错误。网络上的 Coes 与我的非常不同,但是一切看起来都运行良好。我该怎么办?
在此讨论中的任何帮助将不胜感激:) 谢谢!