Невозможно выделить текст, оставленный в Iframe за пределами видимой области
Я использую MVC3, и у меня есть Iframe на моей странице, и режим дизайна для этого Iframe включен для редактирования во время выполнения. во время работы в IE9 я не могу выделить текст за пределами видимой области Iframe. Например: если первые 7 строк видны в моем Iframe, то при прокрутке для выбора содержимого в 10-й строке выбор не происходит.
<iframe id="RFrame" runat="server" style="width: 900px;"></iframe>
<script type="text/javascript">
Sys.Application.add_load(PageLoad);
function PageLoad() {
var frame = $get('<%=this.RFrame.ClientID%>');
$get('<%=this.RFrame.ClientID%>').contentDocument.designMode = "on";
frame.focus();
}
</script>
Примечание: это прекрасно работает во всех других браузерах, кроме IE9. Эта проблема возникает только в том случае, если режим документа установлен как IE9 по умолчанию для режима Bowser IE9.
Может кто-нибудь сообщить мне причину такого поведения или как решить эту проблему?
1 ответ
Проблема, с которой вы сталкиваетесь, вызвана установкой designMode = "on"
Чтобы решить эту проблему, не устанавливайте designMode = "on", вместо этого установите contentEditable = true.
Пример:
var editor = document.getElementById("RFrame");
editorDoc = editor.contentWindow.document;
var editorBody = editorDoc.body;
editorBody.contentEditable = true;
Это также удалит горизонтальную полосу прокрутки из IFRAME, отображаемого IE9, когда режим совместимости отключен.