iframeElm.contentWindow.document.selection не работает для <iframe> в IE, если установить фокус на другие входные данные после выбора в iframe
Это похожий, но другой вопрос о том, как установить html при выборе редактируемого содержимого iframe.
Один из найденных примеров: http://jsfiddle.net/HMRMv/1/, но он также может быть использован для выявления проблемы.
В IE, в примере, если вы выделите текст в iframe, а затем нажмете, он будет работать. Но после выбора текста в редактируемом содержимом iframe, а затем нажатия на другую панель, вы увидите, что подсветка исчезнет, а "щелчок" по кнопке ничего не изменит. Выглядеть как:
var range = document.getElementById("iframe").contentWindow.document.selection.createRange();
Невозможно получить предыдущий выбранный диапазон.
Я попытался кешировать диапазон в размытии и повторно использовать его при "щелчке", но он не работает. Это связано с iframe, какие-либо предложения по этому делу?
var selectedType, selectedRange;
function onBlur(e) {
var selection = iframeElm.contentWindow.document.selection;
var range = selection.createRange();
selectedType= selection.type;
selectedRange = range;
}
1 ответ
blur
Событие слишком поздно для кэширования диапазона выбора, потому что к тому времени выбор уже уничтожен. Используйте только IE beforedeactivate
событие вместо элемента iframe.