我正在使用以下代码更改登陆屏幕的背景图像。
window.onload = function() {
setTimeout(changeBackground, 1000);
};
var currentBackground = 0;
var backgrounds = [];
backgrounds[0] = '<?php echo base_url(); ?>images/background.png';
backgrounds[1] = '<?php echo base_url(); ?>images/background2.png';
backgrounds[2] = '<?php echo base_url(); ?>images/background3.png';
backgrounds[3] = '<?php echo base_url(); ?>images/background4.png';
function changeBackground() {
currentBackground++;
if(currentBackground > 3) currentBackground = 0;
$('body').fadeOut(0, function() {
$('body').css({
'background-image' : "url('" + backgrounds[currentBackground] + "')"
});
$('body').fadeIn(0);
});
setTimeout(changeBackground, 3000);
}
一切都运作良好。但是,在Internet Explorer中,当我尝试在文本框中输入用户名时,当它更改背景图像时,文本字段内的焦点会丢失,我需要在每次更改背景图像时单击。
任何人都可以指导如何克服这一点。
答案 0 :(得分:1)
您可以通过每次背景更改时显式设置焦点来克服此问题。将以下行添加到changeBackground()
函数中(可能应该是最后一行......):
document.getElementById("...ID of text box...").focus();
请记住,这可能会导致另一个问题,即在背景改变之前有意改变焦点。如果这是可能的,那么你真正想要做的是检测哪个元素在背景改变时具有焦点,保留它,而不是明确地将它设置为该元素。这是使用document.activeElement
命令完成的。