У меня есть приложение для iPhone и приложение для iPad, оба из которых выполняют один и тот же веб-код внутри UIWebView.Веб-код - это вызов страницы PHP, чтобы получить HTML + Javascript на мобильный телефон и отобразить его во фрейме.Целью этого кода является взаимодействие с сервером чата.
HTML включает в себя DIV:
<div id="messageContainer" style="width: 768; height: 310; border: 1px solid black; background-color: black; color: white; font-size: 14px; overflow: auto; -webkit-overflow-scrolling:touch">
</div>
Когда код JavaScript получает строку данных с сервера, он просто добавляетэто в div:
function addPost(data) {
var e = document.getElementById("messageContainer");
var post;
if (typeof(data) == "object")
{
post = "<div dir='ltr'><span style='color: rgb(183,226,76)' >" +
data.displayName + "</span>‎: " +
"<span >" + data.msg + "</span><BR/></div>";
} else {
post = data + "<BR/>";
}
e.innerHTML = post;
e.scrollTop = e.scrollHeight;
}
Таким образом, текст в div прокручивается для просмотра.
И iPhone, и iPad работают под управлением iOS 5.
Приложение отлично работает на iPhone!
Однако на iPad, после 20-25 строк данных, div больше не отображает новый текст.Я проверил значение innerHTML, и оно действительно включает новый текст.Он просто отказывается отображать это.В этом случае я могу прокрутить текст, но не могу добавить новый текст, который будет отображаться.
Я прочитал несколько сообщений о проблемах с прокруткой и innerHTML на iPad, но ни одно из предложенных решений не помогло.
Любая идея о том, что может быть не так, будет с благодарностью!
Thx
Ofer
UPDATE # 1:
Тело HTML:
<body style="margin: 0px; height: <?=$chatWindowHeight?>;">
<div id="messageContainer" style="width: <?=$chatWindowWidth?>; height: <?=$chatWindowHeight?>; border: 1px solid black; background-color: black; color: white; font-size: 14px; overflow: auto; -webkit-overflow-scrolling:touch">
</div>
<IFRAME name="chatwindow2" id="chatwindow2" FRAMEBORDER="0" SCROLLING="NO" WIDTH="0" HEIGHT="0" src="ConnectToChat.php">Browser does not support iframes!</IFRAME>
</body>