Safari на iPad не поддерживает contenteditable, и у меня нет контроля над созданным HTMl. Это для блога, и область по умолчанию для вставки текста - это div с атрибутом contenteditable. Я использую jQuery, чтобы найти этот div, спрятать его, добавить текстовую область, и при событии keyup для новой текстовой области поместить текст в скрытый div, а затем я могу нажать кнопку Сохранить, и все будет вставлено правильно.
Сценарий, приведенный ниже, отлично работает в IE, Chrome и FireFox, но не в Safari (iPad или PC), почему это так и каково решение?
$(document).ready(function () {
$('#defaultBox').parent().hide();
$('.ms-standardheader').each(function () {
var test = $(this).html();
if (test.indexOf("Body") != -1) {
$(this).parent().parent().after('<tr><td></td><td><textarea id="newBox" style="width:98%; height: 100%;"></textarea></td></tr>');
}
});
$('#newBox').keyup(function () {
var text = $(this).val();
$('#defaultBox').text(text);
});
});
Редактировать: в Safari происходит то, что, как только я прекращаю печатать, текст немедленно стирается в текстовой области, которую я набираю. Текст не удаляется из div, но трудно увидеть, что вы написали, так как скрытый.
простая скрипка, которая работает в Safari
http://jsfiddle.net/Va4L2/
Я пытался с keydown, но без разницы.
Заранее спасибо.