2010-02-18 41 views
2

當用戶將文本輸入到textarea中時執行window.scrollTo()時,無意中發現了移動Safari瀏覽器呈現光標的錯誤。附上說明問題的源代碼。我想知道如果有人對我如何解決這個問題有任何建議。Mobile Safari scrollTo w/textarea bug

問題:如果用戶輸入文本到一個textarea和window.scrollTo()被執行時,光標保持在文本區域使用是位置呈現,而不是在它的當前位置。

要重新創建:負載使用移動Safari瀏覽以下網頁。觸摸textarea,它將打開鍵盤。輸入幾個字符並等待。由於文字是動態添加到頁面和窗口滾動,你會看到光標神器

試過設置焦點()返回滾動後textarea的,但似乎並沒有產生任何影響。

謝謝!

<html> 
<head> 
    <meta id="viewport" name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;" /> 
    <style type="text/css" media="screen"> 
     textarea { 
      margin-top:50px; 
     } 
    </style> 
    <script type="text/javascript" charset="utf-8"> 
     window.addEventListener('load', function() { 
      setTimeout(addContent,5000); 
     }, false); 


     function addContent() { 
      var elem = document.createElement('p'); 
      elem.appendChild(document.createTextNode('Some new text')) 
      document.getElementById('newContentContainer').appendChild(elem); 
      window.scrollTo(0,20); 
      setTimeout(addContent,5000); 
     } 
    </script> 
</head> 
<body> 
     <div id="newContentContainer"></div> 
     <div> 
      <textarea></textarea> 
     </div> 
</body> 
</html> 

這裏的照片,顯示問題:alt text

+0

是否有在Apple上打開的票? – 2010-06-11 22:38:01

+0

我確實提交了一些內容,但自從...以來沒有聽到任何內容......已經轉移到其他東西,所以還沒有嘗試iOS 4。 – Matty 2010-06-16 12:37:24

回答

2

我敢肯定,這可以解決問題,而且很可能也會使屏幕上的鍵盤閃光燈關閉並重新打開了一點點。使用後調用此代碼scrollTo()

yourTextArea.blur(); 
yourTextArea.focus(); 
+0

試過這個。它確實解決了這個問題,但是我對鍵盤的突然打開和關閉感到不滿意。如果滾動發生在按鍵中間,則很難繼續輸入。 – Matty 2010-03-05 19:49:28

+0

就我所知,這是你唯一的解決方案,因爲如果沒有實際修復軟件本身,這個錯誤就無法真正解決。 – 2010-03-05 20:45:08