Iam使用PHP动态加载页面,如下所示:
<div id="content">
<div id="fadein">
<?php
/// load page content
$pages_dir = 'content';
if(!empty($_GET['p'])) {
$pages = scandir($pages_dir, 0);
//delete . and ..
unset($pages[0], $pages[1]);
$p = $_GET['p'];
// only files that are in the array can be loaded
if (in_array($p. '.php', $pages)) {
include($pages_dir. '/'.$p. '.php');
} else {
echo 'Helaas deze pagina bestaat niet';
}
} else {
include($pages_dir. '/index.php');
}
?>
</div>
</div>
如果您使用我网站顶部的导航,PHP会加载相关内容。
我在页面底部找到了这个脚本来更改背景图片:
function preload(arrayOfImages) {
$(arrayOfImages).each(function(){
$('<img/>')[0].src = this;
// Alternatively you could use:
// (new Image()).src = this;
});
}
// Usage:
preload([
'../public/background/test2/1.jpg',
'../public/background/test2/2.jpg',
'../public/background/test2/3.jpg',
'../public/background/test2/4.jpg',
'../public/background/test2/5.jpg',
'../public/background/test2/6.jpg'
]);
var totalCount = 6;
function changeBackground()
{
var num = Math.ceil( Math.random() * totalCount );
backgroundUrl = '../public/background/test2/'+num+'.jpg';
$('body').css('background-image', 'url(' +backgroundUrl+ ')');
}
changeBackground();
但每次加载不同的内容时,脚本都会被执行...... 我不希望这样。我只想在用户刷新页面时更改背景。当用户浏览网站时,不会加载不同的内容。
答案 0 :(得分:1)
就像现在一样(根据你的评论),当你真的只想加载新内容时,你正在重新加载整个页面。
为了能够获得您想要的效果,您应该使用ajax(组合php和javascript)在您点击导航链接时仅刷新页面的一部分。
你可以做的是(使用jQuery轻松介绍ajax ......):
load
方法将内容替换为新内容(调用您的PHP脚本使用正确的参数)。由于javascript位于主html文件中,它只会在初始页面加载或页面刷新时执行后台脚本。
答案 1 :(得分:0)
如果您尝试通过JavaScript单独管理,那么您可以创建一个包含页面访问数组的Cookie,然后在页面加载时,您可以引用该数组来确定用户是否已经访问过该页面。