Php 使用jQuery和AJAX定期更改背景图像src
我试图让我的页面主体的背景图像每(大约)N秒改变一次。为此,我有一个PHP函数,当我使用AJAX调用它时,它会响应随机图像src。然后我用这个新生成的图片替换当前的身体背景图片src,但是我无法让它工作 这是密码,里面有什么错误吗Php 使用jQuery和AJAX定期更改背景图像src,php,jquery,ajax,image,background,Php,Jquery,Ajax,Image,Background,我试图让我的页面主体的背景图像每(大约)N秒改变一次。为此,我有一个PHP函数,当我使用AJAX调用它时,它会响应随机图像src。然后我用这个新生成的图片替换当前的身体背景图片src,但是我无法让它工作 这是密码,里面有什么错误吗 (function($) { var $body = $('body'); window.setInterval(function() { $.ajax({ url: 'http://localhost/so
(function($) {
var $body = $('body');
window.setInterval(function() {
$.ajax({
url: 'http://localhost/some_path/index.php?exec=getNewBkgImgSrc',
}).done(function(data) {
var newImage = new Image();
newImage.onload = function() {
$body.css('background-image', newImage.src);
};
newImage.src = data;
});
}, 5000);
})(window.jQuery);
还有PHP函数,它可以工作:
public function getNewBkgImgSrc() {
echo CONTENT_URL_DIR.'/Wallpapers/wallpaper ('.rand(1, 20).').jpg';
}
这可能是因为我使用的是localhost吗?我可以想象,以前在本地开发时,我遇到过AJAX问题
编辑:一个线索可能是body元素的style属性在Firebug中不需要更改/设置。我还尝试了$('body').first()
和$(document.body)
并使用url(“”
(在背景图像属性的值中))但也不起作用。不过,onload事件不会触发
感谢您的帮助。如果您从PHP获取URL,为什么要创建新的图像对象?只需将body的背景图像属性设置为:
$body.css('background-image', "url('" + data + "')");
如果使用vanilla JS:
document.body.style.backgroundImage="url('" + data + "')";
请在此处查看该属性的正确格式:可能需要缓存ajax调用。尝试将ajax调用的url属性更改为
“/some_path/index.php?exec=getNewBkgImgSrc&cb=”+((新日期).getTime())。我对
var$body=$('body')不太了解代码>
使用$('body').css('background-image',newImage.src)代码>是的,我也尝试过使用url()和url(“”)以及url(“”),但都不起作用。我尝试了你的解决方案(直接放置URL),但它也不起作用:(我在你的解决方案的URL()中添加了简单的引号,现在它确实起作用了。我使用了一个图像来避免图像加载时出现白色闪烁。谢谢你的帮助。编辑:实际上只有vanilla js解决方案起作用。