Vous avez trébuché sur ce qui semble être un bug avec la façon dont safari mobile rend le curseur quand un window.scrollTo() est exécuté pendant qu'un utilisateur saisit du texte dans une zone de texte. Avoir le code source ci-joint qui illustre le problème. Je me demande si quelqu'un a des conseils sur la façon dont je pourrais contourner cela.Mobile Safari scrollPour w/textarea bug
La question: Si un utilisateur saisit du texte dans une zone de texte et un window.scrollTo() est exécutée, le curseur reste rendu à la position du textarea utilisé être, non pas à sa position actuelle.
Pour recréer: Chargez la page Web suivante à l'aide d'un safari mobile. Touchez la zone de texte, ce qui ouvrira le clavier. Tapez quelques caractères et attendez. Comme le texte est ajouté dynamiquement à la page, et la fenêtre défilée, vous verrez l'artefact du curseur
Avez essayé de remettre le focus() à la zone de texte après le défilement, mais cela ne semble pas avoir d'effet .
Merci!
<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>
Voici une photo qui montre le problème:
Y at-il un billet ouvert avec Apple à ce sujet? –
J'ai effectivement soumis quelque chose, mais je n'ai rien entendu depuis ... Je suis passé à d'autres choses, donc je n'ai pas encore essayé avec iOS 4. – Matty