2012-09-22 77 views
2

我遇到了一個非常有趣的問題。 我試圖設置焦點使用javascript(沒有jQuery的,我試過,但也沒有工作)使用window.onLoad輸入字段。未將焦點設置爲Firefox中的文本字段

只是看看這個fiddel:setFocusOnLoad

它的工作的Chrome瀏覽器不錯,但不能在Firefox。有沒有在Firefox的問題。我該如何解決。謝謝。

編輯: 這裏是我在html文件中複製的代碼。

<!DOCTYPE html> 
<html> 
    <head> 
     <title></title> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script type="text/javascript"> 
      function onloadFocus(){ 
       var name = document.getElementById('name'); 
       //  name.value='window.onload called'; 
       name.focus(); 


      } 

      window.onload=onloadFocus(); 
     </script> 
    </head> 
    <body> 
     <div><input type='text' value='' id='name' name='name'></div> 
    </body> 
</html> 
+2

的jsfiddle將焦點設置後的JavaScript框架上,嘗試使用獨立的頁面,而且運作良好:http://fiddle.jshell.net/ravi441988/r5Rgr/4/show/ –

+0

葉氏博士你是對的 –

+0

@Dr。 Molle>它不工作在頁面上:( – Ravi

回答

6

嘗試增加稍有延遲:

function onloadFocus(){ 
    setTimeout(function() { 
     document.getElementById('name').focus() 
    }, 10); 
} 

Update jsFiddle

+0

如果我點擊在小提琴問題運行仍然相同 – Ravi

+0

>我將它添加到我的原始html文件,它的工作表示感謝。我可以知道爲什麼火狐狸沒有設置焦點。這是一個錯誤? – Ravi

+1

@Ravi我不太確定,可能是因爲你安裝了擴展,導致DOM加載延遲並因此傳遞任何自定義腳本。嘗試獲取Firebug並檢查腳本錯誤。 –

0

,必須用函數調用到一個函數,否則將被立即調用,而不是的onLoad(輸入仍是未知):

window.onload=function(){onloadFocus();} 
+0

不工作在小提琴上嘗試 – Ravi

+0

http://fiddle.jshell.net/r5Rgr/26/show/ –

+0

@ Dr.Molle>它在Sample Html中工作正常,但在我的項目頁面中沒有工作。特里克的技巧在那裏工作......你能告訴我什麼是actulal問題。我谷歌很多開發者面臨同樣的問題。 – Ravi

0

您應該使用window.onload=onloadFocus; ins因爲在window.onload=onloadFocus();的情況下,onloadFocus將立即運行,並且此時輸入字段可能不可用。

jsfiddle

+0

當我打開小提琴它顯示焦點領域,但當點擊再次運行同樣的問題:( – Ravi

+0

@Ravi你不應該相信jsfiddle結果在這種情況下,因爲jsfiddle可能包含自己的代碼焦點。通過創建一個簡單的HTML頁面,它的工作很好。 – Anoop

+0

>但它在Chrome中工作正常?我想弄清楚什麼是與Firefox的問題? – Ravi