Подтвердить что ты не робот

Как сделать contentEditable работу в iOS 5/iOS 6

В настоящее время я работаю над contenteditable iframe, который до сих пор отлично работает во всех браузерах, кроме мобильного Safari. Я использую iOS 5.1.1. Эта проблема воспроизводится в любой версии iOS, которая поддерживает contentEditable до последней версии.

Проблема заключается в следующем: Когда вы нажимаете на него, контент правильно фокусируется, вы можете перемещать курсор и все, однако, как только вы применяете к нему действие, происходит следующее: Фокус все еще находится в iframe, и вы можете видеть курсор, однако он не отвечает на keydown, как это делалось ранее. Ничего не происходит, даже если я перемещаю курсор и все еще пытаюсь ввести что-либо внутри.

Вот пример того, что происходит: http://www.quirksmode.org/dom/execCommand/

Если вы фокусируете iframe в любом месте содержимого и говорите, что вы применяете выравнивание по вертикали. Содержимое правильно выровнено вправо, но если вы попытаетесь ввести какие-либо дополнительные символы, вы увидите, что блокировки ui, но не появляются новые символы внутри курсора. Если вы попытаетесь применить другую команду, она все равно будет работать.

Есть ли у кого-нибудь представление о том, как я могу это решить?

4b9b3361

Ответ 1

вы можете просто использовать режим проектирования iframes вместо атрибута contenteditable, чтобы изменить любые элементы HTML.

код javascript для создания элементов в iframe editable:

var iframe = document.getElementById ('the iframe Id ') ;
var doc = iframe.contentDocument || iframe.contentWindow.document;
doc.designMode = "on";

Поскольку я не читаю проблемы с перекрестным браузером, найденные в этом методе

для полной справки см. здесь

Ответ 2

Обновляет ли ваша версия iOS? Я просто протестировал все условия, описанные с помощью iOS 6.1, без проблем.

Поскольку iOS5 была первой версией iOS Safari для поддержки редактируемого контента, вероятно, что в реализации были ошибки. Кажется, он созрел.

Ответ 3

iOS 5.1.1 поддерживает очень минимальные возможности HTML5. Он будет отлично работать после того, как вы обновите его до iOS 7.