2017-07-02 55 views
0

我正在使用以下代碼更改着陸屏幕的背景圖像。在更改背景圖像時保留鍵盤焦點在文本字段

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中,當我嘗試在文本框中輸入用戶名時,當它更改背景圖像時,文本框內的焦點將丟失,每次更改背景圖像時都需要單擊。

任何人都可以請指導如何克服這一點。

回答

1

您可能可以通過每次背景更改時明確設置焦點來克服此問題。以下行添加到您的changeBackground()功能(或許應該是最後一行...):

document.getElementById("...ID of text box...").focus();

記住,這可能導致在後臺更改之前的重點是故意改變了另一個問題。如果這是可能的,那麼你真正想要做的是檢測哪個元素在背景改變時保留焦點,而不是明確地將其設置爲該元素。這是通過使用document.activeElement命令完成的。

+0

謝謝你的評論,將嘗試和恢復! – rafavinu

+0

嗨,我試過,並得到了在所有其他瀏覽器,但IE的工作,stragely這不工作與IE – rafavinu

+0

奇怪。你使用什麼版本的IE? – JBH

相關問題